Git - 여러 branch 활용하기(3)

Chooooo·2022년 9월 24일
0

Git

목록 보기
6/15
post-thumbnail

인프런 - 제대로 파는 Git & Github - by 얄코


브랜치 합치기 실습

🎈 merge로 합치기

add-coach브랜치를 main브랜치로 merge
merge를 사용하려면 합쳐져서 그 주 대상이 될 브랜치로 이동해야해

  • main브랜치로 이동 (주 대상)
  • git merge 합칠 대상 해당 브랜치와 병합 진행.
    git merge add-coach 명령어를 입력하면 main브랜치에서 추가한 것과 add-coach브랜치에서 추가한 것이 다 같이 나타나게 된다. (주 대상을 main으로 잡아놨기에)

변경됐다는 메세지가 터미널에 표시 돼!

💡 merge는 reset으로 되돌리기 가능

  • merge도 하나의 커밋
  • merge하기 전 해당 브랜치의 마지막 시점으로 되돌아감

병합된 브랜치는 삭제

삭제 전 소스트리에서 add-coach 브랜치 위치 확인
git branch -d add-coach


🎈 rebase로 합치기

rebase는 merge할 때와 반대.
merge할 때는 main(주 대상)으로 이동한 다음에 대상 브랜치를 git merge 대상 브랜치 했다면,
rebase 할 때는 new-teams 브랜치를 main브랜치로 rebase할 것이기에 (뜯어서 붙일 브랜치로 이동해서 진행)

  • new-teams브랜치로 이동 git switch new-teams
    - 🛑 merge때와는 반대!
  • git rebase 옮겨갈 브랜치 명렁어 입력

git rebase main명령어 입력 시 2개의 커밋이 main브랜치로 옮겨감(뜯어서 붙일 브랜치인 new-teams의 2개의 커밋이 옮겨감). 그런데 new-teams브랜치와 main브랜치와의 위치가 다르다.

  • 왜냐하면 new-teams브랜치는 이어붙일 커밋들을 가지고 main브랜치 뒤에 붙이고 가장 최근 커밋으로 가 있는데 main브랜치는 그 가지의 끝까지 가지 않았기 때문.

그렇기 때문에 main브랜치를 가장 최근 커밋으로 이동시켜줘야 하는데 여기서 좀 특이하고 헷갈리는 것이 merge를 통해 main브랜치를 최근 커밋으로 이동해야해 !

  • 즉! main브랜치로 이동 후 new-teams를 merge해주는 것이다. (주 대상인 main으로 다시 이동 후 merge 진행)

🎈 git switch main
🎈 git merge new-teams


이렇게 하면 new-teams브랜치의 작업이 main브랜치에도 적용이 된거야 (두 브랜치 모두 최신 커밋으로 이동했기에)

결국! rebase를 할 때는 rebase할 대상 브랜치로 가서 메인 브랜치로 가지 이어붙이기를 한 다음, 그 다음! 메인 브랜치의 싹을 맨 끝으로 옮겨주기 위해 대상 브랜치와 merge를 진행

new-teams브랜치에서 했던 작업들이 main 브랜치로 모두 옮겼기 때문에 new-teams브랜치 삭제
git branch -d new-teams


이 과정을 모두 진행했다면, main에서 했던 작업들, add-coach에서 했던 작업들, new-teams에서 했던 작업들 모두 이 프로젝트에 적용이 된 것을 볼 수 있다.

이런 식으로 여러 추가적인 작업, 실험적인 작업 혹은 급한 오류들을 각각 다른 브랜치에서 작업한 다음에 만약에 아니다 싶으면 해당 브랜치를 지워버리면 되는 것이고 그게 아니고 적용할 준비가 됐다면 메인 브랜치로 merge를 하거나 rebase를 하면 되는 것이다!

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글