인프런 - 제대로 파는 Git & Github - by 얄코
add-coach
브랜치를 main
브랜치로 merge
merge를 사용하려면 합쳐져서 그 주 대상이 될 브랜치로 이동해야해
main
브랜치로 이동 (주 대상)git merge 합칠 대상
해당 브랜치와 병합 진행.git merge add-coach
명령어를 입력하면 main
브랜치에서 추가한 것과 add-coach
브랜치에서 추가한 것이 다 같이 나타나게 된다. (주 대상을 main으로 잡아놨기에)변경됐다는 메세지가 터미널에 표시 돼!
💡 merge는 reset으로 되돌리기 가능
❤ 병합된 브랜치는 삭제
삭제 전 소스트리에서 add-coach
브랜치 위치 확인
git branch -d add-coach
rebase는 merge할 때와 반대.
merge할 때는 main(주 대상)으로 이동한 다음에 대상 브랜치를 git merge 대상 브랜치
했다면,
rebase 할 때는 new-teams
브랜치를 main
브랜치로 rebase할 것이기에 (뜯어서 붙일 브랜치로 이동해서 진행)
new-teams
브랜치로 이동 git switch new-teams
git rebase 옮겨갈 브랜치
명렁어 입력git rebase main
명령어 입력 시 2개의 커밋이 main브랜치로 옮겨감(뜯어서 붙일 브랜치인 new-teams의 2개의 커밋이 옮겨감). 그런데 new-teams
브랜치와 main
브랜치와의 위치가 다르다.
그렇기 때문에 main브랜치를 가장 최근 커밋으로 이동시켜줘야 하는데 여기서 좀 특이하고 헷갈리는 것이 merge
를 통해 main브랜치를 최근 커밋으로 이동해야해 !
🎈 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를 하면 되는 것이다!