반원 블로그

Git과 GitHub 사용하기(7) - Branch 본문

2017/GitHub

Git과 GitHub 사용하기(7) - Branch

반원_SemiCircle 2019. 9. 1. 23:11

Branch(가지)

  • 한 줄이 아닌 여러 줄로 커밋을 쌓도록 해주는 것
  • 한 줄로만 커밋을 쌓으면 협업시 작업 충돌이 일어날 수 있다.(동시에 같은 코드를 수정하는 경우 등)
  • 여러 줄로 나눈 커밋들을 나중에 합칠 수 있다. 이 때도 충돌이 일어날 수 있으나 제어를 할 수 있다(Merge)

git push origin master의 master

  • master 브랜치는 기본적으로 만들어져 있다.
  • master 브랜치로 commit을 push하라는 명령어
  • 여기서 HEAD 속성이란게 존재하며, 내가 지금 작업하는 로컬 브랜치를 가리켜준다.
  • 반대로 HEAD를 통해서 내가 지금 작업하는 브랜치를 확인할 수 있다.

git branch 이름

  • 브랜치를 만드는 명령어
  • 현 시점(지점)에서 '이름'이라는 브랜치를 만든다.

git checkout 이름

  • 브랜치 이동 명령어
  • HEAD를 '이름' 브랜치로 옮김으로서 현재 작업하는 로컬 브랜치를 변경한다.
  • 만일 master브랜치는 계속 냅두고 있다면 특정 지점에서 머물러 있을 것이다.(정식 릴리즈? 세이브? 지점으로 보는게 좋을 듯. 여기까지는 완벽. 또는 확인되었다라는 의미로..)

브랜치 생성 실습 과정

  1. GitStudy master에서 feat/main-page 브랜치 생성
    + 앞에 feat/ 이렇게 되있으면 저 feat만 써져있는 걸 볼 수 있다. 
  2. commit
  3. GitStudy_Clone 에서 pull
  4. master에서 feat/comment 브랜치 생성
  5. commit

브랜치 생성(소스트리)

  1. History 탭에서 원하는 지점을 클릭 후 '브랜치'를 클릭. 체크아웃을 활성화시켜 바로 HEAD가 변경하도록 한다.

    2. 이러면 feat 브랜치만 따로 생성된 걸 볼 수 있다. 그리고 History에 현 지점의 브랜치도 전부 확인할 수 있다.

    3. GitStudy index.html을 조금 수정합니다.

    4. 방금 수정사항을 커밋할 건데 feat/main-page 브랜치에 하도록 하자. 왼쪽 탭에서 현재 브랜치가 무엇이 선택되었는지 꼭 확인해야하며, 커밋시 아래 체크박스를 체크하면 commit과 동시에 push까지 된다.

master는 아직 옛날 History인데, feat/main-page는 최신인 상태. origin은 깃헙 원격 저장소를 말한다고 한 바가 있다.

깃헙에서 브랜치 확인

  1. GitHub에서 브랜치 별 소스코드 상태를 확인할 수 있다.

 

다른 로컬 저장소에서 브랜치 또 만들기(GitStudy_Clone)

1.브랜치를 생성한다.(feat/comment)

2. GitStudy_Clone의 작업 상태를 변경한다.

3. 소스트리의 History를 보면 벌써 분기가 보인다. 커밋마무리 짓자

 

 

다른 저장소의 브랜치까지 보려면?

  • 기본적으로 브랜치는 현 로컬저장소에 있는 것만 보인다.
  • 관련된 브랜치를 보려면 '원격'탭을 확인하자
  • 다른 브랜치로 이동하고 싶다면 더블 클릭하면, CheckOut할 것 인지 물어보는 창이 뜬다. 이 때 아래쪽엔 내 컴퓨터에 가져올 때 적용할 로컬 브랜치 명을 적어준다.
  • CheckOut하게 되면 브랜치가 바뀌니, 소스코드도 바뀌게 된다. 즉 div로 댓글 레이아웃한 추가한 index.html이 아닌 GitStudy에서 수정했던 index.html이 보인다.

로컬 저장소는 GitStudy_Clone이지만 feat/main-page 브랜치를 체크아웃했기 때문에 다음처럼 코드가 보인다.
다시 feat/comment를 체크아웃하니 코드 내용이 또 바뀌었다.

Comments