* merge 하는 방법 ( 작업들은 어느 시점에서 병합해야 할 순간이 필요하다. )
* git log --branches --graph --decorate --oneline 명령을 통해 현재 상태를 본다.
* 지금까지 exp에서 작업했던 내용을 master로 병합하는 방법을 살펴보겠다.
(exp 를 master로 옮기는 방법)
-> 3,4라는 커밋의 내용을 master 브랜치도 갖게 하는 것이 첫번째 목표이다.
master 브랜치로 체크아웃한 다음에 merge를 한다.
* git merge exp
Q. 현재 마스터는 어떤 커밋으로 체크아웃됐나?
-> 방금 자동으로 작성된 커밋 메세지가 있는 커밋이 마스터의 최신 커밋이 됐다.
그리고 이 커밋은 두 개의 부모 커밋을 갖는다.
1) 원래 마스터가 가지고 있는 커밋 5번
2) 동시에 exp가 작업햇던 3,4번을 부모로 갖는다.
그래서 방금 우리가 merge했을 때 만들어진 커밋은 두개의 부모를 갖는 하나의 커밋이 만들어지면서 master는 자기가 작업햇던 5번과 exp가 작업했던 두개의 커밋을 모두 가지고 있는 상태가 되었다.
* ls -al ( f1,f2,f3.txt를 모두 갖게 됨. )
다시 그래프를 보면
-> exp는 3번과 4번을 가지고 있지만 5번을 가지고 있지 못한다.
exp가 master가 작업했던 5번도 포함하도록 하겠다.
( exp와 master가 완전히 같은 상태가 되도록! )
master를 exp로 가져오고 싶으면 exp로 체크아웃한 다음에 git merge master을
하면 된다.
그 다음에 로그를 보면 exp가 master와 똑같은 커밋을 최신 커밋으로 가지고 있고
exp는 master와 똑같이 3,4,5를 공통의 부모로 갖는 커밋이 되었다.
( 완전히 똑같은 상태 )
-> 그 다음 exp는 더이상 필요없으니
1) git checkout master
2) git branch -d exp
위와 같이 master branch만 남는다.
*이 포스트는 이고잉님의 '지옥에서 온 Git'강의를 참고하여 작성했습니다.
URL : https://opentutorials.org/course/2708
'프로그래밍 관련 도구 > Git' 카테고리의 다른 글
Git(stash 정리) (0) | 2017.08.09 |
---|---|
Git(branch_merge_conflict 정리) (0) | 2017.08.04 |
Git(branch_log,diff 정리) (0) | 2017.08.02 |
Git(branch 정리) (0) | 2017.08.02 |
Git(git status의 원리) (0) | 2017.07.30 |