깃으로 버전관리를 시작하면 기본적으로 master라는 브랜치가 만들어진다. 마스터 브랜치에서 새 브랜치를 만드는 것을 분기(branch)한다고 한다.
분기했던 브랜치를 master 브랜치에 합치는 것을 병합(merge)한다고 한다.
$ git branch (브랜치 이름)
깃에서 새 브랜치를 만들거나 확인한다.
$ git log --oneline
한 줄에 한 커밋씩 로그 보기
최신 커밋이 master브랜치에만 적용된다.
다른 브랜치로 이동해보자.
$ git checkout apple
apple 브랜치로 이동(체크아웃)한다.
여기서
$ git log --oneline
명령을 사용하면 현재 브랜치의 커밋 로그를 확인하게 된다.
$ git add .
현재 저장소에서 수정된 파일들을 한꺼번에 스테이지에 올릴 수 있다.
$ git log --oneline --branches
각 브랜치의 커밋을 함께 볼 수 있다.
$ git log --oneline --branches --graph
브랜치와 커밋의 관계를 그래프 형태로 볼 수 있다.
$ git log master..apple
master과 apple브랜치 사이의 차이점을 확인한다. 브랜치명과 마침표 사이에는 공백이 없게 한다.
중요한 점!!
$ git log A..B
A에는 없고 B에만 있는 커밋을 보여준다.
$ git log B..A
B에는 없고 A에만 있는 커밋을 보여준다.
$ git init manual-2
"manual-2"라는 이름의 저장소 만들고 초기화까지 한번에.
o2 브랜치의 내용을 master브랜치로 병합해 보자. 먼저 master 브랜치로 체크아웃한다.
$ git checkout master
$ git merge o2
master 브랜치에 o2 브랜치를 가져와 병합한다.
$ git merge o2 --no-edit
편집기 창을 열지 않고 깃에서 지정하는 커밋 메시지를 그대로 사용한다.
$ git merge o2 --edit
커밋 메시지를 추가하거나 수정하고 싶을 때 병합 명령에 --edit을 사용한다.
→ 자동으로 하나로 합쳐 준다.
master 브랜치로 체크아웃한 뒤 o2 브랜치를 master 브랜치로 끌어와보자.
$ git checkout master
$ git merge o2
자동 병합(Merge)에 실패한다. 파일을 열어보자.
$ vim work.txt
원하는 대로 내용을 수정한다. 수정한 work.txt를 스테이지에 올리고 커밋한다.
$ git branch -d o2
$ git stash
명령을 사용한다.stash 명령 뒤에 pop을 추가하면 stash 목록에서 가장 최근 항목을 되돌린다.
$ git stash pop