09
14

당신은 아무것도 못 본거에요.

1. 문제의 발단

  • 혼자서 이것저것 연습해 보고, 씹고 뜯고 맛보고 즐긴 스플린트들이 많다.
  • 이것을 다시 해보고 싶었다.
  • 물론, 삭제하고 Git으로 다시 클론 하는 방법도, Ctrl + z를 연타하는 모습도 너무 없어 보인다.
  • 더 멋있게 Git의 브런치들을 이용해 작업물을 넘나들면서 연습하고 더 초고수가 되어보자.

2. 브랜치

  • 브랜치(Branch)는 '나무 가지'를 뜻 한다. Git의 브랜치도 나뭇가지가 뻗어 나오듯이, 각각의 줄기의 지점을 분기로 잡고 그 분기로 언제든지 돌아갈 수 있다.
  • 간단하게 말하면 닥터 스트레인지의 '타임 스톤'이다. 위치만 저장을 해 놓은다면 어떤 지점의 코드로든 갈 수 있는 것이다.
  • 닥터는 14,000,605개의 미래를 타임스톤으로 직접 돌아가 가속시켜 체험하고 결국 타노스와의 승리를 할 수 있는 브랜치를 찾아낸 것이다!
  • 결국, 브랜치를 만든다는 것은 어떤 부분에서 문제가 생겼는지 알기 쉽고, 책임 소지가 확실하며 기존의 코드를 완전히 날려먹지 않고도 개인적으로 다른 작업을 하는 등의 장점이 있다.

3. 브랜치 명령어

  • $ git branch 브랜치 이름: 새로운 브랜치를 만든다.
  • $ git switch -c 혹은, $ git checkout -b 브랜치 이름: 브랜치를 생성한 후 그 해당 브랜치로 바꾼다.
  • $ git branch: 브랜치들의 목록 확인
  • $ git branch -d 삭재할 브랜치 이름: 브랜치를 삭제함
  • $ git branch -D: 병합 되지 않은 브랜치를 강제로 삭제함.
  • $ git log --branches --graph --decorate: 브랜치를 그래프로 본다.
  • $ git stash: commit 하기 전의 작업들을 일단 스택에 넣어 둔다.
    • 이전에는 커밋 이후, git log로 목록을 본 후에, 그 log의 코드 6글자를 복사해서 git reset 코드 6글자 --hard로 바로 돌아가는 방법을 많이 사용했다.
    • 프로젝트를 진행 하게 되면 다양한 브랜치들을 만들어서 다양한 버전의 결과물들이 팀원들과 섞이게 된다면 사용하게 될 것이다!

4. rebase와 merge

  • 둘 다 하는 일은 비슷하다. 두 개의 브랜치를 합쳐버린다.
  • 하지만 merge는 말 그대로 합병이다. 이때까지 수정했던 이력들은 남기고 이후 남은 부분을 합친다.
  • rebase는 그 브랜치가 있는 시점으로 아에 옮겨 버린다는 점이 다르다. 나머지 수정했던 이력은 남지 않는다.
COMMENT