프로그래머스, Git 정리
프로그래머스, Git 정리
Git 등장 배경
Linus Torvalds가 처음 배포 → 지옥에서 온 정보 관리자- 버전 관리 시스템을 사용하지 않는 버전 관리의 문제점 대두
- 소스 코드 관리, 의존 패키지, 라이브러리…
→ 따라서, 버전 관리가 되는 시스템을 개발해야 함.
- 변경된 내용이 기록되어야 함
- 특정 시점을 명명해야 함 (reference, tag, version 등의 형태로)
- 수정 내역을 추적해야 함
- 이전 상태로 되돌릴 수 있어야 함
Git
- 비교적 최근에 등장한 버전 관리 시스템 (2005)
- 분산 버전 관리 시스템
- 많은 기능 제공, 대중화 → 사실상의 표준
- 대부분의 경우에서 합리적
- But, 대규모 코드 베이스를 다루는 경우, 발생하는 성능 문제
- 잘 변하지 않는 도구로 → 잘 다룰 수 있으면 좋음.
Git 시작 전
Git GUI Clients
다양한 GUI 클라이언트를 사용할 수 있다.
- GitKraken
- Sourcetree
- Github Desktop
- IDE 내장(VS code, WebStorm 등..)
Git 설치
실습을 위한 Git 설치 진행
Git - Downloading Package
Git Bash 사용
pwd: 현재 위치의 경로ls: 현재 위치의 하위 내역 확인
Git 시작
Git 설정
1
2
3
4
git config --global user.email 이메일주소
git config --global user.name 사용자명
git config --global --list # 전역변수 목록 확인
Git 저장소 생성
- 폴더를 하나 생성하여, git 초기화 실시
- 상태를 확인하면, main으로 브랜치가 생성됨
1
2
3
4
5
mkdir 저장소명
cd 저장소명
git init # git 초기화
git status # git 저장소 상태 확인
Commit
변경사항 담기(추가)
1 2
git add . # 지금까지의 변화를 모두 담음 git add 특정파일명 # 특정파일의 변화만 담음
커밋
메시지와 함께 커밋을 진행할 수 있음1 2 3
git commit -m "커밋 메시지 입력" git log # 커밋 기록 확인
Branch
- 작업의 분기점
- 사용 예시
- 새로운 작업 시작 전
- 이 시점을 백업하고 싶을 때
- 새로운 버전 출시 전
- 브랜치 확인
생성했던 브랜치 목록과 선택된 브랜치가 무엇인지 확인 가능
- 브랜치 확인
1
git branch
브랜치 생성
1 2 3
git branch 새로운브랜치명 git branch # 브랜치 확인브랜치 전환
1 2 3
git switch 전환할브랜치명 git branch # 브랜치 확인정돈된 기록(log) 확인
1
git log --graph --oneline
Merge
브랜치 병합
1 2 3
git merge 병합브랜치명 대상브랜치명 git log --graph --oneline # 기록 확인대상 브랜치 삭제
1 2 3
git branch --delete 대상브랜치명 git log --graph --oneline # 기록 확인
Conflict (충돌)
발생 이유
동일한 영역이 서로 다른 시간에 수정될 때
- 예) 충돌을 위한 브랜치 생성
브랜치 충돌 상황 생성
1 2 3 4 5 6 7 8 9 10 11 12
git branch a git branch b git switch a # index.html 수정 후 진행 git add . git commit -m "index.html 타이틀 추가" git switch b # index.html 수정 후 진행 git add . git commit -m "index.html 파일 내용 추가" git log --graph --oneline --all # 모든 브랜치의 기록 확인브랜치 충돌을 위한 각각의 브랜치 main에 병합 → 충돌 발생!
1 2
git merge a # 기존 병합 git merge b # 새로운 병합
⇒ 어떤 것을 병합할지를 선택하면 됨! (다양한 옵션 존재!)
- 직접 상황 선택도 가능
병합 취소
1
git merge --abort기존 병합 후, 다음 병합도 진행
1
git merge --continue
Git 명령어 파레토 법칙
→ 커멘드 중 20%가 사용량의 80% 차지
- init, clone, status, log, add, commit, branch, checkout(switch)
- push, pull, merge, rebase, revert, reset
This post is licensed under CC BY 4.0 by the author.