728x90
# 출처 : [도서]Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문(이고잉)
- 서로 다른 파일 병합하기
- 같은 문서의 다른 위치를 수정했을때 병합하기
- 같은 문서의 같은 위치를 수정했을때 병합하기
- 병합이 끝난 브랜치 삭제하기 : git branch -d
서로 다른 파일 병합하기
git init manual-2
cd manual-2
ls -al
vim work.txt # '1' 작성 후, 저장 및 나가기
git add work.txt
git commit -m "work 1"
git branch o2
vim master.txt # 'master 2' 작성 후, 저장 및 나가기
git add master.txt
git commit -m "master work 2"
git checkout o2
vim o2.txt # 'o2 2' 작성 후, 저장 및 나가기
git add o2.txt
git commit -m "o2 work 2"
git log --oneline --branches --graph
git checkout master
git merge o2 # vim 창으로 진입된다. 나가기(:wq)
git log --oneline --branches --graph
빨리 감기 병합
master 브랜치에서 브랜치를 분기한 후, master 브랜치에 아무 변화가 없다면(새로운 커밋이 없다면)
분기한 브랜치를 병합하는 것은 간단!
이유 : 분기한 브랜치에서 만든 최신 커밋을 master 브랜치가 가리키게만 하면 되기 때문
이 경우, 화면에 커밋 해시가 업데이트되었다는 내용과 함께 fast-forwrd라는 메세지가 나타나는데,
이런 병합을 빨리 감기 병합(fast-forward merge)라고 부른다.
※ git merge의 결과가 단순히 포인터를 움직인 것이기 때문에 따로 커밋 메세지 창은 열리지 않는다.
git init fast-menual cd fast-menual vim work.txt # 'work 1' 작성 후, 저장 및 나가기(:wq) git add . git commit -m "work 1" git branch o2 git checkout o2 vim o2.txt # 'o2 work 2' 작성 후, 저장 및 나가기 git add . git commit -m "o2 work 2" vim o2_2.txt # 'o2_2 work 2' 작성 후, 저장 및 나가기 git commit -am "o2_2 work 2" git checkout master git log --oneline --branches --graph git merge o2 git log --oneline --branches --graph
브랜치를 병합할 때 편집기 창이 열리지 않게 하려면,
git merge 브랜치명 --no-edit
브랜치를 병합할 때 편집기 창이 나타나지 않도록 설정한 경우, 편집기 창이 열리도록 하려면,git merge 브랜치명 --edit
같은 문서의 다른 위치를 수정했을때 병합하기
git init manual-3
cd manual-3
vim work.txt
git add work.txt
git commit -m "work 1"
git branch o2 # master와 o2 브랜치 모두 work.txt를 가지고 있다.
vim work.txt # 여전히 master 브랜치에서 work.txt를 수정한다.
git commit -am "master work.txt"
git checkout o2
vim work.txt # o2 브랜치에서 work.txt를 수정한다.
git commit -am "o2 work 2"
git checkout master
git merge o2 # vim 창으로 들어갈텐데, 그냥 저장 및 나가기(:wq)
cat work.txt # work.txt가 병합되었는지 확인
같은 문서의 같은 위치를 수정했을때 병합하기
git init manual-4
cd manual-4
vim work.txt # 내용은 사진 참고
git add work.txt
git commit -m "work 1"
git branch o2
vim work.txt # 내용은 사진 참고
git commit -am "master work 2"
git checkout o2
vim work.txt # 내용은 사진 참고
git commit -am "o2 work 2"
git checkout master
git merge o2
vim work.txt
git commit -am "merge o2 branch"
git log --oneline --branches --graph
병합이 끝난 브랜치 삭제하기
git branch -d
브랜치를 병합한 후, 더 이상 사용하지 않는 브랜치는 삭제할 수 있다.
하지만, 삭제를 하더라도 브랜치가 완전히 지워지는 것은 아니므로 다시 같은 이름의 브랜치를 만들면 예전 내용을 다시 확인할 수 있다.
git branch -d o2
git branch -D o2 # 강제 삭제(master에 병합하지 않은 브랜치를 삭제할 경우, 오류가 나는데 이를 강제로 삭제하고 싶다면 -D 옵션 사용)
저장소의 기본 브랜치는 master이므로,
브랜치를 삭제하려면 master 브랜치에서 해야한다. (git checkout master 필수)
※ 브랜치를 삭제하는 것은 완전히 저장소에서 없애는 것이 아니라 깃의 흐름 속에서 감추는 것이라고 생각하면 된다.
728x90
'IT > Git' 카테고리의 다른 글
[Git] stash 일부만 하기 (0) | 2022.12.16 |
---|---|
[Git] 원격 브랜치 가져오기 (2) | 2022.09.20 |
[Git] 브랜치 생성, 이동, 확인 (0) | 2022.08.12 |
[Git] 작업 되돌리기 (0) | 2022.08.12 |
[Git] 커밋 메세지 수정 및 상세보기 (0) | 2022.08.11 |