병합 충돌은 파일의 동일한 줄에 대한 경쟁 변경이 수행되거나 한 사람이 파일을 편집하고 다른 사용자가 동일한 파일을 삭제할 때 발생합니다. 병합 충돌을(를) 참조하세요.
팁
충돌 편집 GitHub 기를 사용하여 끌어오기 요청의 일부인 분기 간의 줄 변경 병합 충돌을 해결할 수 있습니다. GitHub 병합 충돌 해결을(를) 참조하세요.
상충하는 라인 변경 병합 충돌
경쟁 변경 내용이 동일한 줄에 영향을 줄 때 유지할 변경 내용을 선택한 다음 해결 방법을 커밋합니다.
-
터미널 또는 Git Bash를 엽니다.
-
병합 충돌이 있는 로컬 Git 리포지토리로 이동합니다.
cd REPOSITORY-NAME -
병합 충돌의 영향을 받는 파일을 나열합니다. 이 예제에서 styleguide.md 파일에 병합 충돌이 있습니다.
$ git status > # On branch branch-b > # You have unmerged paths. > # (fix conflicts and run "git commit") > # > # Unmerged paths: > # (use "git add <file>..." to mark resolution) > # > # both modified: styleguide.md > # > no changes added to commit (use "git add" and/or "git commit -a") -
원하는 텍스트 편집기(예: <a0
/>)를 열고 병합 충돌이 있는 파일로 이동합니다. -
파일에서 충돌 표
<<<<<<<식을 검색합니다. HEAD 또는 기본 분기의 변경 내용이 뒤에<<<<<<< HEAD나타나고 그 다음에=======다른 분기의 변경 내용이>>>>>>> BRANCH-NAME표시됩니다.If you have questions, please <<<<<<< HEAD open an issue ======= ask your question in IRC. >>>>>>> branch-a -
분기의 변경 내용만 유지하거나, 다른 분기의 변경 내용만 유지하거나, 두 분기의 변경 내용을 통합할 수 있는 완전히 새로운 변경을 수행할지 결정합니다. 충돌 표식
<<<<<<<,=======,>>>>>>>를 삭제하고 최종 병합에서 원하는 대로 변경합니다. 예를 들어 두 변경 내용을 모두 유지할 수 있습니다.If you have questions, please open an issue or ask in our IRC channel if it's more urgent. -
변경 내용을 준비합니다.
git add . -
주석을 사용하여 변경 내용을 커밋합니다.
git commit -m "Resolve merge conflict by incorporating both suggestions"
이제 명령줄에서 분기를 병합하거나 원격 리포지토리에GitHub 변경 내용을 푸시하고 끌어오기 요청에서 변경 내용을 병합할 수 있습니다 .
파일 병합 충돌 제거됨
한 분기가 파일을 삭제하고 다른 분기가 동일한 파일을 편집하는 경우 파일을 유지할지 삭제할지 여부를 선택한 다음 해결 방법을 커밋합니다.
-
터미널 또는 Git Bash를 엽니다.
-
병합 충돌이 있는 로컬 Git 리포지토리로 이동합니다.
cd REPOSITORY-NAME -
병합 충돌의 영향을 받는 파일을 나열합니다. 이 예제에서
README.md파일에 병합 충돌이 있습니다.$ git status > # On branch main > # Your branch and 'origin/main' have diverged, > # and have 1 and 2 different commits each, respectively. > # (use "git pull" to merge the remote branch into yours) > # You have unmerged paths. > # (fix conflicts and run "git commit") > # > # Unmerged paths: > # (use "git add/rm <file>..." as appropriate to mark resolution) > # > # deleted by us: README.md > # > # no changes added to commit (use "git add" and/or "git commit -a") -
원하는 텍스트 편집기(예: <a0
/>)를 열고 병합 충돌이 있는 파일로 이동합니다. -
제거된 파일을 유지할지 여부를 결정합니다. 리포지토리에 다시 추가하려면 다음을 수행합니다.
git add README.md리포지토리에서 이 파일을 제거하려면 다음을 수행합니다.
$ git rm README.md > README.md: needs merge > rm 'README.md' -
주석을 사용하여 변경 내용을 커밋합니다.
$ git commit -m "Resolve merge conflict by keeping README.md file" > [branch-d 6f89e49] Merge branch 'branch-c' into branch-d
병합 충돌이 해결되면 이제 원격 리포지토리에 GitHub 변경 내용을 푸시하거나 끌어오기 요청을 기본 분기에 병합할 수 있습니다.