$ git branch 브랜치명
브랜치 만들기
새 브랜치 만들기
1. 깃에서 브랜치를 만들거나 확인하는 명령어
$ git branch
기본적으로 master 브랜치로 만들어져 있다.
2. 새로운 브랜치를 만드는 명령어
$ git branch 브랜치명
fatal: Not a valid object name: 'master' 에러가 나오면서 브랜치 생성이 되지 않는 경우
이유는 master branch에서 최초의 commit을 하지 않았기 때문
브랜치 사이 이동하기
1. git log 명령어로 브랜치 확인
$ git log
2. master 브랜치에서 새로운 커밋을 하나 실행
$ vim manual.txt
$ git commit -am "master content 2"
3. master 브랜치에 새로운 커밋이 추가 되었는데 --oneline(한줄에 한 커밋씩 표시)옵션을 추가해서 확인
$ git log --oneline
- testBranch, test02, test01브랜치의 최신커밋
- 메시지 master comtent2는 master의 최신커밋
- (HEAD -> master)는 현재 브랜치를 의미함
4. 현재 브랜치(master)에서 다른 브랜치로 이동 하는 명령어(apple 브랜치로 체크아웃)
$ git checkout testBranch
5. $위에 나타난 파일경로 끝에 (testBranch)로 표시가 현재 브런치가 됩니다.
6. 작업 브랜치를 testBranch로 변경했을 경우의 로그 확인
$ git log --oneline
8. master 브랜치에서 testBranch 브랜치를 분기 하기전의 커밋 상태만 복사됨을 확인 할 수 있습니다. 그리고 최신 커밋 해시에서 HEAD가 testBranch를 가리키고 있습니다.
9. manual.txt 내용을 확인하면 testBranch의 생성시의 상태만 확인됨을 알수있다.
$ cat manual.txt
브랜치 정보 확인하기
1. 'manual.txt' 파일에 내용을 추가하여 커밋
2. 커밋이 어떻게 저장되었는지 git log로 확인
$ git log --oneline
3. git log 명령어를 사용시 --branches옵션을 사용하면 각 브랜치의 커밋도 확인 가능
$ git log --oneline --branches
커밋 해시마다 오른쪽에 (HEAD -> testBranch), (master), (test02, test01)각 브런치의 최신 커밋을 확인 할 수 있다.
4. 브랜치와 커밋의 관계를 더 보기 쉬운 그래프 형태로 표시하려면 --graph옵션을 사용
$ git log --oneline --branches --graph
브랜치 사이의 차이점 알아보기
1. 왼쪽에 있는 브랜치를 기준으로 오즌쪽 브랜치를 비교하는 명령문
$ git log master..testBranch
master브랜치에는 없고 testBranch에만 있는 커밋인 'new content 4' 커밋만 보여줍니다.
2. 역으로 브랜치를 바꾸어 확인
$ git log testBranch..master
브랜치 병합하기
서로 다른 파일 병합하기
1. manual-2라는 깃 저장소 생성
$ cd~
$ git init manual-2
$ cd manual-2
$ ls -al
2. manual.txt 파일을 만들고 내용을 입력후 저장
$ vim manual.txt
$ git add manual.txt
$ git commit -m "work 1"
3. 'o2'라는 새브랜치 생성
$ git branch o2
4. master 브런치에 masterManual.txt라는 파일을 하나더 만들어 메시지는 'master work2' 라 입력하고 저장한다.
$ vim masterManual.txt
$ git add masterManual.txt
$ git commit -m "master work 2"
5. o2브랜치로 체크아웃
$ git checkout o2
6. o2 브랜치에서 o2Manual.txt 파일을 만들어 내용을 입력하고, 'o2 work 2' 메시지와 함꼐 커밋실행
$ vim o2Manual.txt
$ git add o2Manual.txt
$ git commit -m "o2 work 2"
7. git log명령으로 현재 커밋 상태를 확인
$ git log --oneline --branches --graph
8. o2 브랜치에 작업이 끝이났다고 가정하고 o2의 내용을 master 브랜치로 병합을 해야하므로 master 브랜치로 체크아웃을 하여야 합니다.
git checkout master
9. 브랜치를 병합 하려면 git merge 명령어 뒤에 가져오는 브랜치 이름을 적어 브랜치를 가져옵니다.
$ git merge "o2"
명령어를 실행하면 vim이 실행되면서 'Merge branch o2' 메시지와 함께 메시지를 수정할수있는 vim이 나오며 내용을 수정하여 :wq를 입력하여 편집기를 종료하면 merge가 완료 된다
10. ls -al명령어로 o2브랜치에 있던 o2Manual.txt파일이 master 브랜치에 생성되었는지 확인한다.
11. git log --oneline --branches --graph 명령어로 브랜치와 커밋들의 상태를 확인
$ git log --oneline --branches --graph
브랜치 병합시 편집기가 열리지 않게 하려면
$ git merge 브랜치명 --mo-edit
브랜치를 병합할때 편집기 창이 나타나지 않도록 설정한 경우, 커밋 메시지를 추가하거나 수정하고 싶다면 병합 명령에 --edit옵션을 사용
$ git merge 브랜치명 --edit
같은 문서의 다른 위치를 수정했을 때 병합하기
1. manual-2라는 깃 저장소 생성
$ cd ~
$ git inti manual-4
$ cd manual-4
2. work.txt 파일을 만들고 내용을 입력후 저장 및 커밋
$ vim work.txt
$ git add work.txt
$ git commit -m "work 1"
3. o2 브랜치를 생성, o2 브랜치가 만들어 지면서 master 브랜치의 최신 커밋을 가져옴으로 work.txt파일이 있습니다.
git branch o2
4. 현재 브런치는 master 브랜치이며 master 브랜치에서 work.txt를 수정
$ vim work.txt
위와 같이 master content 2를 추가한다.
5. 수정한 work.txt를 커밋하고, 메시지는 'master work 2'라고 한다.
6. o2 브랜치의 work.txt 파일도 수정을 위해 o2 브랜치로 체크아웃합니다.
$ git checkout o2
$ vim work.txt
위와 같이 o2 content 2를 추가한다.
7. 수정한 work.txt를 커밋하고, 메시지는 'o2 work 2'라고 한다.
$ git commit -am "o2 work 2"
8. master 브랜치와 o2 브랜치 양쪽에서 work.txt 파일을 수정했지만 문서 안의 수정 위치가 같습니다. 이럴 경우 병합이 어떻게 이루어 지는지 확인을 합니다.
일단 master브랜치로 체크 아웃 합니다.
$ git checkout master
9. git marge 로 o2 브랜치를 master브랜치로 가지고 옵니다.
$ git merge o2
위의 그림에서 아래의 메시지 두줄에서 자동병합하는 동안 (conflict)이 발생함을 의미
10. 충돌이 생긴 문서는 자동으로 병합될 수 없으므로 직접 충돌 부분을 해결후 커밋을 해야 합니다.
충돌이 생긴 work.txt를 열어서 확인해보면 충돌 부분을 확인 할 수 있습니다.
$ vim work.txt
<<<<<<< HEAD
master content 2 <---- 현재 브랜치에서 수정한 내용
=======
o2 content 2 <---- 병합한 브랜치에서 수정한 내용
>>>>>>> o2
11. 원하는 내용으로 수정하여 <<<<<<< HEAD, =======, >>>>>>> o2 삭제하고 문서를 저장합니다.
12. 수정한 work.txt를 스테이지에 올리고 커밋을 하면됩니다. 메시지는 'merge o2 branch'로 하겠습니다.
이렇게 o2브랜치에서 병합한 work.txt의 충돌을 해결하고 커밋을 완료.
$ git commit -am "merge o2 branch"
13. git log 명령어로 브랜치와 커밋관게확인.
$ git log --oneline --branches --graph
병합이 끝난 브랜치 삭제하기
1. git branch 명령으로 현재 저장소와 어떤 브랜치가 있는지 확인
$ git branch
2. 브랜치를 삭제할 때는 git branch 명령에 -d옵션을 사용 합니다.
$ git branch -d o2
3. Deleted branch o2 처럼 메시지가 나오면 브랜치가 삭제가 되었으며, git branch로도 확인 할 수 있습니다.
'IT > 설계관련' 카테고리의 다른 글
【git】깃 허브에 원격 저장소 만들기 (git 403 에러) (0) | 2022.03.05 |
---|---|
【git】브랜치 관리하기 (0) | 2022.02.25 |
【git】작업 되돌리기 (0) | 2022.02.23 |
【git】관리 및 커밋(commit) (0) | 2022.02.22 |
【git】git에서 자주 사용하는 리눅스 명령어 (0) | 2022.02.21 |