[Git] Rebase 1. Rebase란? 커밋 시퀀스를 새 기준 커밋으로 이동하거나 결합하는 프로세스이다. 그림에서 보이는 것처럼 rebase를 사용하면 feature 브랜치에서 작업한 커밋을 마치 Main브랜치에서 작업한 것처럼 이동시킬 수 있다. 하지만 Git은 내부적으로 새 커밋을 만들고 지정된 기준에 적용하여 이것을 구현하기 때문에, 브랜치가 동일하게 보이지만 완전히 새로운 커밋으로 구성되어 있음을 이해하는 것이 중요하다. 2. Rebase의 목적 일반적으로 Git을 사용하는 목적은 다자 간의 협업을 위함이기 때문에 우리는 커밋을 할 때 커밋 메시지를 활용하여 어떤 커밋인지를 명시해주곤 한다. rebase를 활용하면 그러한 기록들을 유지시키거나 더 깔끔하게 정리하며 이동, 병합이 가능하기 때문에 많이 활용된다. 3... 2023. 1. 8. [Git] Cherry-pick & Merge --Squash 1. Cherry-Pick 한 개의 작업 브랜치에서 여러 개의 커밋을 생성했을 때, 그 중 원하는 커밋만을 택해서 병합하고 싶을 경우 택하는 방식이다. 하위 브랜치를 만들기 전 기존 작업 환경이라 가정하고 base 브랜치에 base.txt 파일을 생성하여 커밋해놓은 상태이다. 이 상태에서 작업할 work 브랜치를 생성, 두 개의 커밋을 만들어보자. work 브랜치에서 두개의 커밋을 정상적으로 생성하였다. 이제 다시 base 브랜치로 돌아가 Cherry-pick으로 원하는 커밋만을 병합해보자. base 브랜치에서 파일 목록을 조회한 결과 base.txt 만이 조회되었고 그 상태에서 Cherry-pick으로 work 브랜치의 "a 생성" 커밋만을 병합한 결과, 원하던 대로 a.txt 파일만이 병합되었다. 협.. 2023. 1. 7. [Git] Merge 1. Merge(병합) git merge는 두 개의 커밋 포인터(보통 브랜치 팁)를 사용하며 두 포인터 간에 일반적인 기준 커밋을 찾는다. Git은 일반적인 기준 커밋을 찾으면 대기 중인 각 병합 커밋 시퀀스의 변경 사항을 결합하는 새 '병합 커밋'을 만든다. 2. Fast-Forward Merge / 3-Way Merge Fast Forwad Merge 현재 브랜치 팁에서 대상 브랜치까지의 선형 경로가 있는 경우 빨리 감기 병합을 할 수 있다. 브랜치를 "실제로" 병합하는 대신, Git은 현재 브랜치 팁을 대상 브랜치 팁까지 이동시키는 작업만으로 기록을 통합할 수 있다. 대상 브랜치에서 연결할 수 있는 모든 커밋을 이제 현재 커밋을 통해 사용할 수 있으므로 기록이 효과적으로 결합된다. 3-Way Mer.. 2023. 1. 6. 이전 1 다음 반응형