Git은 종종 분기 간의 차이점을 해결하고 자동으로 병합할 수 있습니다. 일반적으로 변경 내용은 다른 줄에 있거나 다른 파일에 있으므로 컴퓨터가 쉽게 병합할 수 있습니다. 그러나 경우에 따라 Git에서 사용자의 도움 없이는 해결할 수 없는 경쟁하는 변경 내용이 있습니다. 병합 충돌은 사용자가 같은 파일의 같은 줄을 다르게 변경하거나 한 사람이 파일을 편집하고 다른 사람이 같은 파일을 삭제할 때 발생합니다.
GitHub에서 끌어오기 요청을 병합하려면, 모든 병합 충돌을 먼저 해결해야 합니다. 끌어오기 요청에서 비교 분기와 베이스 분기 간에 병합 충돌이 있는 경우 **끌어오기 요청 병합** 단추 위에 변경 내용이 충돌하는 파일 목록을 볼 수 있습니다.
**끌어오기 요청 병합** 단추는 비교 분기와 베이스 분기 간의 모든 충돌을 해결할 때까지 비활성화됩니다.
병합 충돌 해결
병합 충돌을 해결하려면 충돌하는 파일을 수동으로 편집하여 최종 병합에서 유지하려는 변경 내용을 선택해야 합니다. 병합 충돌을 해결하는 몇 가지 방법이 있습니다.
-
사용자가 Git 리포지토리의 다른 분기에서 동일한 파일의 동일한 줄을 다르게 변경하는 경우와 같이 줄 변경으로 인해 병합 충돌이 발생하는 경우 충돌 편집기를 사용하여 해결할 GitHub 수 있습니다. 자세한 내용은 GitHub 병합 충돌 해결을(를) 참조하세요.
-
다른 모든 유형의 병합 충돌의 경우 리포지토리의 로컬 클론에서 병합 충돌을 해결하고 변경 내용을 분기로 GitHub푸시해야 합니다. 명령줄 또는 변경 내용 푸시와 같은 GitHub Desktop 도구를 사용할 수 있습니다. 자세한 내용은 명령줄을 사용하여 병합 충돌 해결을(를) 참조하세요.
-
모든 유형의 병합 충돌에서 Copilot 클라우드 에이전트에 대한 액세스 권한이 있고, 이 기능이 리포지토리에서 사용 설정되어 있는 경우, 병합 상자에서 Copilot로 수정을 클릭하면 Copilot이(가) 충돌을 해결할 수 있습니다. Copilot 는 충돌하는 변경 내용을 분석하고 충돌을 해결하며 빌드, 테스트 및 linter가 여전히 통과하는지 확인합니다. 자세한 내용은 GitHub Copilot 기존 끌어오기 요청을 변경하도록 요청을(를) 참조하세요.
명령줄에서 병합 충돌이 있는 경우 컴퓨터에서 병합 충돌을 로컬로 해결할 때까지 로컬 변경 내용을 GitHub에 푸시할 수 없습니다. 병합 충돌이 있는 명령줄에서 분기를 병합하려고 하면 오류 메시지가 표시됩니다. 자세한 내용은 명령줄을 사용하여 병합 충돌 해결을(를) 참조하세요.
$ git merge BRANCH-NAME
> Auto-merging styleguide.md
> CONFLICT (content): Merge conflict in styleguide.md
> Automatic merge failed; fix conflicts and then commit the result
추가 참고 자료
-
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) -
[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-on-github)