티스토리 뷰

Git 공부

Git branch merge

on1ystar 2019. 3. 11. 22:19
728x90
반응형

본 내용은 생활코딩 - 지옥에서 온 git을 보고 공부했습니다. 조언은 언제든지 감사합니다 !


branch merge는 서로 다른 두 브랜치의 작업을 하나로 합쳐야 할 때 사용하는 명령어다.

보통 주 작업을 하는 branch(master)에서 추가되는 기능을 구현하는 branch를 만들어 작업을 하다가 다 구현한 후 구현한 내용을 다시 master branch로 병합한다. 

혹은 테스트를 위해 테스트용 branch를 만들어 master branch를 테스트용 branch로 병합한 다음 코드를 테스트 하기도 한다.

이러한 이유는 branch는 병합을 하기 전까지는 다른 branch의 작업 내용에 영향을 미치지 않고, 목표를 달성한 후 간단하게 합치거나 삭제할 수 있기 때문이다.

주의해야 할 부분은 어떤 branch에 병합할 것인지를 확실히 정하고 그 branch에 checkout해 놓아야 한다.

예를 들어 branch_1에 branch_2를 병합하고 싶다면 branch_1에 checkout한 상태에서 

$ git merge branch_2

를 입력하면 된다.


현재 HEAD -> master를 통해 master branch에 checkout한 상태이고 파일들의 목록이다.

여기서 exp branch를 병합해 보겠다.


graph 상에서 가지가 연결되는 것을 볼 수 있고, 파일의 목록도 branchTest.txt와 branchTest2.txt가 새로 추가되었다.

추가된 두 파일은 exp branch에 있던 파일들이다.

여기서 더 주목해 봐야 할 점은 merge가 될 때 Merge branch 'exp'라는 내용의 commit이 추가되면서 병합이 됐다는 점이다.

새로 추가된 commit은 부모 commit으로 exp의 2316988 commit과 master의 3b05035 commuit을 가지게 된다.


병합한 뒤 필요없는 branch는 $ git branch -d 명령어를 이용해 삭제할 수 있다.

하지만 삭제한 뒤에도 log에 commit 정보들은 남아있다.


주의해야 할 점

다른 branch로 checkout을 할 때는 해당 branch의 변경된 사항(add)을 모두 commit한 뒤에 해야하다.(그러는 것이 좋다)






728x90
반응형

'Git 공부' 카테고리의 다른 글

Git merge (fast forward, merge commit)  (0) 2019.03.11
Git 에러 fatal: Not a valid object name: 'master'.  (0) 2019.03.11
Git branch  (0) 2019.03.10
Git commit의 원리, 저장소 관계  (1) 2019.03.09
Git add의 원리  (0) 2019.03.09
댓글