분기점
$ mkdir branchtest
$ cd branchtest
$ git init
$ vim work.txt
$ git add work.txt
$ git commit -m "work 1"
git branch
git branch [브랜치 이름]
$ git branch
$ git branch apple
$ git branch ms
$ git branch google
git checkout [브랜치 이름]
git log --oneline
으로 로그를 보면 master와 다른 브랜치의 상태가 다른 것을 확인 할 수 있다.git log --oneline
으로 로그를 보면 HEAD가 apple를 가리키고 있는 것을 볼 수 있다.git log --oneline --branches --graph
를 한다면 분기되었음을 그래프로 확인할 수 있다.git log master..apple
: master 브랜치를 기준으로 apple과 비교하여 차이점을 알 수 있다.git log apple..master
: apple 브랜치를 기준으로 master와 비교하여 차이점을 알 수 있다.git log --oneline --branches --graph
로 현재 상태를 확인한다.git merge b1
을 입력하여 병합한다. :: master 브랜치를 b1과 병합한 결과를 master 브랜치에 적용한다.$ mkdir man1
$ cd man1
$ git init
$ vim work.txt
$ git add work.txt
$ git commit -m "work 1"
$ git branch b1
$ vim master.txt
$ git add master.txt
$ git commit -m "master work 2"
$ git checkout b1
$ vim b1.txt
$ git add b1.txt
$ git commit -m "b1 work 2"
$ git log --oneline --branches --graph
$ git checkout master
$ git merge b1
$ ls -al
#title
content
#title
content
#title
master content 2
#title
content
#title
content
#title
b1 content 2
$ git init man2
$ cd man2
$ vim work.txt
$ git add work.txt
$ git commit -m "work 1"
$ git branch b1
$ vim work.txt
$ git commit -am "master work 2"
$ git checkout b1
$ vim work.txt
$ git commit -am "b1 work 2"
$ git checkout master
$ git merge b1
$ cat work.txt
#title
content
#title
content
#title
content
master content 2
#title
content
#title
content
b1 content 2
#title
content
<<<<HEAD
, >>>>b1
, =====
을 삭제한 뒤 저장하고 편집기를 종료한다.git log --oneline --branches --graph
로 지금까지 만든 브랜치와 커밋의 관계를 한눈에 확인할 수 있다.$ git init man2
$ cd man2
$ vim work.txt
$ git add work.txt
$ git commit -m "work 1"
$ git branch b1
$ vim work.txt
$ git commit -am "master work 2"
$ git checkout b1
$ vim work.txt
$ git commit -am "b1 work 2"
$ git checkout master
$ git merge b1
$ vim work.txt
$ git commit -am "merge b1 branch"
$ git log --oneline --branches --graph
git merge b1 --edit
git merge b1 --no-edit
프로그램 | 설명 |
---|---|
P4Merge | 무료이고 직관적이며 사용이 편리하고 병합 기능이 뛰어남. 단축키가 지원되지 않는 단점이 있다. |
Meld | 무료이며 오픈소스. 파일을 비교하는 것뿐만 아니라 직접 편집할 수 있다. |
Kdiff3 | 무료이고 사용이 편리하고 병합 기능이 뛰어나지만 한글이 깨져보일 수 있다. |
Araxis Merge | 유료지만 용량이 큰 파일에서도 잘 동작함 |
git branch
로 남은 브랜치 확인git branch -d b1
git branch --delete b1
git branch -D b1
git stash
git status
로 상태를 확인한다.git stash
를 실시하고 다시 git status
를 해보면 modified 메시지가 사라진 것을 확인 할 수 있다.git stash pop
을 사용한다.$ git init st
$ cd st
$ vim f1.txt
$ vim f2.txt
$ git add .
$ git commit -m "add f1, f2"
$ vim f1.txt
$ vim f2.txt
$ git stash
$ git stash pop
git stash
: stash 스택에 modified 상태의 작업물을 담는다.git stash pop
: 가장 최근의 항목을 되돌리고 stash 스택에서 제거한다.git stash list
: stash 스택의 목록을 확인한다.git stash apply
: 가장 최근의 항목을 되돌리고 stash 스택에 남겨둔다.git stash drop
: 가장 최근의 항목을 삭제한다.