-
Git 명령어 정리 - 로컬 브랜치 편서비스 공부/Git 2022. 12. 5. 23:33
이 포스트와 사용된 사진은 아래의 책 내용을 기반으로 작성하였습니다.
또한 크리에이티브커먼즈에 의거 CC-BY-NC-SA를 따릅니다.
설명보단 브랜치 상태와 명령어에 따른 변화를 보여드리겠습니다.
- 브랜치 생성, merge, 삭제
$ git checkout -b iss53 or $ git branch iss53 $ git checkout iss53
$ vim index.html $ git commit -am "add a new footer [issue 53]"
$ git checkout master $ git checkout -b hotfix $ vim index.html $ git commit -am "fixed the broken email address"
$ git checkout master $ git marge hotfix // fast-forward
$ git branch -d hotfix $ git checkout iss53 $ vim index.html $ git commit -am "finish the new footer [issue 53]"
$ git checkout master $ git merge iss53 // 3-way merge (C2 C4 C5)
Auto-merging index.html CONFLICT (content): Merge conflict in index.html Automatic merge failed; fix conflicts and then commit the result. ---- at index.html file... ---- <<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> iss53:index.html ---- after fix ---- <div id="footer"> please contact us at support@github.com </div>
$ git add $ git commit Merge branch 'iss53' Conflicts: index.html # # It looks like you may be committing a merge. # If this is not correct, please remove the file # .git/MERGE_HEAD # and try again. # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # All conflicts fixed but you are still merging. # # Changes to be committed: # modified: index.html # :wq
브랜치를 만들고 merge하고 삭제하는 과정에 대해 살펴봤습니다.
그 가운데 conflict가 발생하는 상황에서 수정하는 방법 또한 알아봤습니다.
- 브랜치 관리
$ git branch iss53 * master testing
$ git branch -v iss53 93b412c fix javascript issue * master 7a98805 Merge branch 'iss53' testing 782fd34 add scott to the author list in the readmes
$ git branch --merged iss53 * master $ git branch --no-merged testing
$ git branch -d testing error: The branch 'testing' is not fully merged. If you are sure you want to delete it, run 'git branch -D testing'.
merge되지 않은 브랜치를 삭제하려는 경우 에러메세지가 출력되며 삭제되지 않습니다.
강제로 삭제를 원하는 경우 -d 대신에 -D를 사용하면 됩니다.
$ git checkout testing $ git branch --no-merged master topicA featureB
특정 브랜치(master)를 기준으로 merge 되지 않은 브랜치를 확인하려면 맨 뒤에 특정 브랜치의 이름을 적어주면 됩니다.
- 브랜치 워크플로
git merge dumbidea git merge iss92v2 git branch -D iss91
안정화된 브랜치(master)일 수록 커밋 히스토리가 뒤쳐지는 경향이 있다.
토픽 브랜치(dumbidea, iss91, iss91v2)에서 충분히 테스트해본 후 안정화된 브랜치에서 merge하자.
'서비스 공부 > Git' 카테고리의 다른 글
분산 환경 워크플로 (0) 2022.12.06 Git 명령어 정리 - 리모트 브랜치 편 (0) 2022.12.06 Git 명령어 정리 - 협업 기초 편 (0) 2022.10.23 Git 명령어 정리 - 파일관리 편 (2) 2022.10.14 Git 특징 (2) 2022.10.13