프로그래밍 관련 도구/Git

Git(branch_merge 정리)

benjykim 2017. 8. 3. 20:33
반응형

* 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