Branch란?

한지훈·2023년 1월 19일
0

Git

목록 보기
1/2

Branch란?

다른 환경에서 작업을 하거나, 다른 사람과 협업을 할 때 변경사항이 생기면 매 번 시작전에 Pull을 통하여 변경사항을 업데이트해야 한다. 하지만 매번 Pull을 해야 하는 것이 너무 번거롭다. 애초에 작업공간을 나눠서 하면 어떨까? 이것을 위한 것이 Branch이다.

Branch는 어차피 따로 개발하는 거, 그냥 작업공간을 나눠놓고 나중에 한 번에 합치자!의 아이디어이다.


이론

맨 처음 git init 명령어를 이용하여 git을 생성하고, a라는 최초 커밋을 하면 1개의 branch가 기본적으로 생성되는데 이것이 main이다.

후에 c라는 커밋을 한번 더 하면 main branch에는 a와 c라는 커밋이 있다. 만약 이제부터 따로 개발을 하고 싶다면, 1번 사람은 main branch 그대로 d커밋을 하고, 2번사람은 원래 있던 main branch와는 다른 새로 브랜치라는 것을 만들어서 따로 커밋을 한다.

그렇게 2명의 사람은 2개의 다른 branch에서 커밋을 계속한다. 여기에서 2개의 branch를 합치면 된다. 이것을 Merge라 한다. 만약 같은 공간에 같은 라인을 수정했다면 conflict 해결을 해야 한다. Github에서는 "이 2개의 Branch를 합쳐주세요~"라는 즉, Merge를 해달라는 요청을 Pull Request, 즉 PR이라 부른다. 이 PR을 수락하면 2개의 Branch가 Merge되는 것이다.


실습

  1. 아무 레포를 생성 후, 텍스트 파일을 만든 후 commit을 a라 한다.

  2. 텍스트 파일을 변경 후 c라는 commit을 추가한다.

현재 branch는 main 1개밖에 없음.

  1. test라는 이름의 branch를 생성해줌. git branch test
  1. 이전 Branch에서 새로운 Branch로 이동을 해야한다. git checkout test

branch가 옮겨진 것을 볼 수 있다.

  1. 이전 commit과 관련되지 않은, 새로운 파일인 test222.txt라는 파일을 추가 후, z라는 commit을 추가한다. 후에 git log를 통해 commit을 확인해보자.

z라는 commit은 test라는 branch에 있다는 것을 확인할 수 있다.

  1. 여기서 Branch를 다시 main으로 이동해보자. git checkout main, 후에 git log를 이용하여 다시 commit을 확인해보자.

Branch를 옮기니 commit도 main에 관한 commit밖에 남지 않았고, test라는 Branch에 추가한 commit에 대한 파일이 없어졌고, 그 전 Main Branch에 남긴 파일만 남은 것을 볼 수 있다.

  1. main branch를 github에 push한다. git push origin main

github에 main branch에 commit한 b라는 커밋이 push됐다.

  1. test branch를 github에 push한다. git push origin test

Github의 해당 레포에 2개의 Branch가 생성된 것을 볼 수 있다.

  1. 두 개의 Branch를 Merge를 하기 위하여는 Pull Request 요청을 수락해야 한다.

위의 Compare & pull request를 누른 후,

해당 Pull Request에 대한 comment를 Write 파트에 작성 후 Merge pull request를 누르면 두 개의 Branch가 Merge된다.

그러면 이렇게 보라색의 창이 뜨는데 이것이 Merge가 된 것이다.

profile
노력하는 개발자

0개의 댓글