이것만 안다면 나는 브랜치의 신

최동혁·2022년 12월 17일
0

깃허브

목록 보기
8/9

브랜치를 왜 꼭 써야할까?

  • 브랜치를 따로 만들지 않으면 마스터 한 줄기에서 계속해서 커밋이 발생
  • 보통 마스터 브랜치는 코드가 검증이 되고, 문제가 없는 내용들만 포함되야함.
  • 보통 feature A라는 새로운 기능이 있는 코드가 작성이 되면 feature A라는 브랜치에서 작업을 하는게 보통이다.
    • 작업이 다 끝나면 feature A 브랜치를 삭제 시키고 master 브랜치에 병합시킴.
    • 하지만 feature A의 커밋 이력들을 전부 머지하면 더러워지기 때문에, feature A의 모든 커밋을 하나로 합쳐서 하나의 커밋으로 만든 후, 머지시킨다.

브랜치

만들어져있는 브랜치 확인하기

  • 커밋 히스토리를 보면 위의 그림처럼 마스터 브랜치가 작업한 것과, fix가 작업한 것이 나누어져 있다.
  • git branch 라는 명령어를 통해 현재 어떤 브랜치가 있는지 확인해보자.

  • 현재 레포지토리에 총 3개의 브랜치가 있는 것을 확인할 수 있다.
  • 그런데 git branch 명령어는 로컬 레포지토리의 브랜치들만 보여준다.
  • 원격 저장소의 모든 branch를 보고 싶다면??
    • git branch --all 이라는 명령어를 통해 볼 수 있다.

새로운 브랜치 만들기

  • git brach "만들고자 하는 브랜치의 이름"
  • 현재 new-branch라는 새로운 브랜치를 만든것이다.
  • 히스토리를 확인해보자

  • 새로 만든 브랜치인 new-branch가 마지막 커밋을 가리키고 있는 것을 볼 수 있다.

브랜치 이동(switch)

  • git switch "이동할 브랜치명"

  • git switch -C "새로 만들고 이동할 브랜치명"
  • 만들고 바로 이동하기 위한 명령어이다.

브랜치 이동(checkout)

  • git checkout "이동할 커밋 해시태그"
  • 이러면 해당 해시태그의 커밋으로 이동한다.

  • 해당 커밋까지의 버전 파일들만 나오게 된다.

  • git checkout 브랜치명
  • 이렇게 하면 HEAD가 해당 브랜치를 가리키게 된다.

  • 히스토리를 보면 그림처럼 HEAD가 이동한 브랜치를 가리키게 된다.

  • git checkout -b 새로 만들고 이동할 브랜치명
  • 위에서 봤던 switch -C 와 같은 역할을 한다.

각 브랜치들의 커밋 확인

  • git branch
  • 각 브랜치들의 종류 확인

  • git branch -v
  • 각 브랜치들의 커밋 내역 확인

현재 브랜치의 머지가 된 브랜치들 확인

  • git branch --merged
  • 현재 브랜치의 머지가 된 브랜치들을 확인할 수 있다.
  • master 밑의 브랜치들은 커밋 내역이 아예 없기 때문에 머지가 되었다고 나온다.

  • git branch --no-merged
  • 이렇게 되면 master 브랜치에 머지가 되어 있지 않은 즉, master 브랜치에서 파생된 다른 변경사항이 있는 브랜치를 나타내준다.

  • 히스토리를 보면 master 브랜치에서 파생된 fix 브랜치가 위의 그림에서 보듯 옆으로 튀어나와서 master에 머지가 되어 있지 않음을 볼 수 있다.

master 브랜치로 merge하기

  • git merge 병합할 브랜치명
  • 이러면 fix 브랜치가 master 브랜치로 병합이 된다.

브랜치 지우기

  • git branch -d 해당하는 브랜치명

만약 지울 브랜치가 원격에도 있는 브랜치라면?

  • git push origin --delete new-branch2

브랜치의 이름 변경

  • git branch --move 현재브랜치명 바꿀브랜치명
  • git branch --move fix fix-welcome

바꾼 브랜치의 이름을 원격에 업데이트 하기

  • git push --set-upstream origin fix-welcome

브랜치와 브랜치 사이의 커밋 확인

  • git log master..test
  • master 브랜치와 test 브랜치 사이의 커밋들만 확인

브랜치와 브랜치 사이의 변경 코드 확인

  • git diff master..test
  • master 브랜치와 test 브랜치 사이의 변경된 코드 확인

총정리

  1. test 브랜치 만들기
  2. test 브랜치에서 test라는 글자가 쓰여진 test.txt 파일 생성
  3. commit 하기
  4. master 브랜치로 이동 후, test 브랜치와 master 브랜치 사이의 변경사항 확인
  5. test 브랜치의 결과물 master 브랜치로 merge
  6. test 브랜치 삭제
git checkout -b test
echo test > test.txt
git add .
git commit -m "test"
git switch master
git log master..test
git diff master..test
git merge test
git branch -d test
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글