3-4 브랜치 병합하기 3-5 브랜치 관리하기


http://www.yes24.com/Product/Goods/84803146

 

Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 - YES24

생활코딩 강의에서 52개를 엄선, 한 권 안에 자주 쓰는 기능은 모두 담았다.문서 지옥, 깃&깃허브로 하루 안에 탈출한다!본서는 대학생, 개발자, 일반 사무직까지. 문서 지옥에 빠진 모두를 위한

www.yes24.com

⌜Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문⌟ 책을 공부하며 요약・정리한 내용입니다.


cf) ‘git init [디렉터리명]’ : 새로운 디렉터리를 만들고 저장소를 초기화하는 과정을 한꺼번에 처리 할 수 있다.

서로 다른 파일 병합하기

git merge [병합할브랜치명]

두 브랜치에서 서로 다른 파일을 병합하는 경우 간단하게 해결 가능

 

cf) 브랜치를 병합할 때 편집기 창이 열리지 않게 하려면

git merge [병합할브랜치명] --no-edit

‘--no-edit’ 옵션을 추가하면 편집기 창을 열지 않고 깃에서 지정하는 커밋 메세지를 그대로 사용

git merge [병합할브랜치명] --edit

브랜치를 병합할 때 편집기 창이 나타나지 않도록 설정한 경우, 커밋 메시지를 추가하거나 수정하고 싶을때 ‘--edit’ 옵션 사용

 

 

같은 문서의 다른 위치를 수정했을 때 병합하기

git merge [병합할브랜치명]

이때도 간단하게 병합 가능

 

 

같은 문서의 같은 위치 수정했을 때 병합하기

깃에서는 줄 단위로 변경 여부를 확인한다. 그래서 각 브랜치에 같은 파일 이름을 가지고 있으면서 같은 줄을 수정했을 때 브랜치를 병합하면 브랜치 충돌(conflict)이 발생!

충돌이 생긴 문서는 자동으로 병합될 수 없어서 사용자가 직접 충돌 부분을 해결한 후 커밋해야 한다.

 

 

병합이 끝난 브랜치 삭제하기

저장소의 기본 브랜치에서 삭제해야 한다.

git branch -d [삭제할브랜치명]

‘Deleted branch ~’ 메세지가 나타나면 성공적으로 삭제된것

삭제한 브랜치는 같은 이름으로 다시 브랜치를 만들면 예전 작업했던 내용이 그대로 나타난다. 즉 브랜치를 삭제한다는 것은 완전히 저장소에서 없애는 것이 아니라 깃의 흐름 속에서 감추는 것이다.

 

 

 

 

브랜치에서 checkout과 reset의 작동 원리

HEAD : 현재 작업 트리(워킹 디렉터리)가 어떤 버전을 기반으로 작업 중인지를 가리키는 포인터

HEAD는 기본적으로 master 브랜치를 가리킨다.

브랜치는 기본적으로 브랜치에 담긴 커밋 중에서 가장 최근의 커밋을 가리킨다.

‘git checkout’명령을 통해 HEAD가 가리키는 브랜치를 변경할 수 있다.

 

브랜치가 여러 개일때 현재 브랜치가 아닌 다른 브랜치에 있는 커밋을 골라 최신 커밋으로 지정할 수 있다.

git log --online --branches

‘git log’ 명령을 사용해 원하는 커밋의 커밋 해시를 확인하고

git reset [커밋해시]

‘git reset’ 명령(2장 참고)를 통해 커밋 해시를 입력하면 된다.

이렇게 git reset 명령을 사용하면 현재 브랜치가 가리키는 커밋을 여러 브랜치를 넘나들며 제어할 수 있다. 그리고 기존에 가리키고 있던 커밋은 연결이 끊기면서 삭제된다.

 

 

정리하면

git checkout 명령을 사용해 HEAD를 제어해서 브랜치를 이동할 수 있고 git reset 명령을 사용해 HEAD가 가리키고 있는 브랜치의 최신 커밋을 원하는 커밋으로 지정할 수 있다. 이때 어떤 브랜치에 있는 커밋이든 지정할 수 있으며, 명령을 수행한 뒤 브랜치와 연결이 끊긴 커밋은 삭제된다.

 

수정 중인 파일 감추기 및 되돌리기 - git stash

git stash 명령을 사용하려면 파일이 tracked 상태여야 한다.(한 번은 커밋한 상태여야 한다.)

git statshsave
git stash

둘 다 같고 커밋하지 않은 수정 내용을 보관하는 명령

여러 파일을 수정한 후 따로 보관할 수 있으며, 이렇게 감춘 파일들은 stash목록에서 확인할 수 있다.

git stash list

가장 먼저 감춘 것은 stash@{0} 에 들어있고

다른 파일이 추가되면 기존 파일은 stash@{1}로 옮겨지고 새로 추가된 파일이 stash@{0}에 담긴다.

 

git stash pop

git stash pop을 이용해 이렇게 감춘 파일을 수정하거나 커밋할 수 있는데 stash 목록에서 가장 최근 항목을 되돌린다.

 

cf) stash apply, stash drop

git stash apply

stash 목록에서 가장 최근 항목을 되돌리지만 저장했던 내용은 그대로 남겨둔다.

git stash drop

stash 목록에서 가장 최근 항목을 삭제한다.

 

 

 

 

 


https://www.instagram.com/p/CbhkT8xrD5y/?utm_source=ig_web_copy_link

부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.

이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.