리베이스 및 머지 충돌 해결
Git rebase 및 강제 푸시 소개, 명령줄을 통한 머지 충돌 해결 방법.
Git rebase는 커밋을 대상 브랜치의 끝으로 이동하여 한 브랜치의 변경 사항을 다른 브랜치에 결합합니다. 이 작업은: 대상 브랜치의 최신 코드로 브랜치를 업데이트합니다. 더 쉬운 디버깅과 코드 리뷰를 위해 깔끔하고 선형적인 커밋 기록을 유지합니다. 충돌 해결을 위해 커밋 수준에서 머지 충돌 을 해결합니다. 코드 변경의 시간 순서를 보존합니다. 리베이스를 수행하면: Git이 처음에 그 브랜치를 만든 후 대상 브랜치에 제출된 모든 커밋을 가져옵니다. Git이 가져온 커밋 위에 브랜치의 커밋을 적용합니다. 이 예시에서는 feature 라는 브랜치가 생성된 후(주황색), main 의 커밋 네 개(보라색)가 feature 브랜치로 가져옵니다: 대부분의 리베이스는 main 에 대해 수행되지만 다른 브랜치에 대해서도 리베이스할 수 있습니다. 다른 원격 리포지터리를 지정할 수도 있습니다. 예를 들어 origin 대신 upstream . Warning git rebase 는 커밋 기록을 다시 작성합니다. 공유 브랜치에서 충돌 및 복잡한 머지 충돌을 일으킬 수 있습니다. 기본 브랜치에 대해 브랜치를 리베이스하는 대신 git pull origin master 사용을 고려하세요. 풀은 다른 사람의 작업을 손상시킬 위험이 적으면서 유사한 효과를 냅니다. 리베이스 # Git을 사용하여 리베이스하면 각 커밋이 브랜치에 적용됩니다. 머지 충돌이 발생하면 해결하라는 메시지가 표시됩니다. 커밋에 대한 더 고급 옵션을 보려면 대화형 리베이스 를 사용하세요. 사전 요구 사항: 브랜치에 강제 푸시할 권한 이 있어야 합니다. Git을 사용하여 대상 브랜치에 대해 브랜치를 리베이스하려면: 터미널을 열고 프로젝트 디렉토리로 변경합니다. 대상 브랜치의 최신 내용이 있는지 확인합니다. 이 예시에서 대상 브랜치는 main 입니다: git fetch origin main 브랜치를 체크아웃합니다: git checkout my-branch 선택 사항. 브랜치의 백업을 만듭니다: git branch my-branch-backup 이 시점 이후에 my-branch 에 추가된 변경 사항은 백업 브랜치에서 복원하면 손실됩니다. main 브랜치에 대해 리베이스합니다: git rebase origin/main 머지 충돌이 있는 경우: 편집기에서 충돌을 해결합니다. 변경 사항을 스테이징합니다: git add . 리베이스를 계속합니다: git rebase --continue 다른 사람의 커밋을 보호하면서 대상 브랜치에 변경 사항을 강제 푸시합니다: git push origin my-branch --force-with-lease 대화형 리베이스 # 대화형 리베이스를 사용하여 각 커밋을 처리하는 방법을 지정합니다. 다음 지침은 Vim 텍스트 편집기를 사용하여 커밋을 편집합니다. 대화형으로 리베이스하려면: 터미널을 열고 프로젝트 디렉토리로 변경합니다. 대상 브랜치의 최신 내용이 있는지 확인합니다. 이 예시에서 대상 브랜치는 main 입니다: git fetch origin main 브랜치를 체크아웃합니다:
