>  기사  >  운영 및 유지보수  >  Git 병합 충돌을 해결하는 방법

Git 병합 충돌을 해결하는 방법

WBOY
WBOY앞으로
2023-06-09 15:58:561961검색

如何解决 Git 合并冲突

당신과 내가 같은 이름을 공동 편집한다고 가정해 보겠습니다. index.html 파일. 파일을 변경하고 커밋한 다음 변경 사항을 Git 원격 저장소에 푸시했습니다. 또한 동일한 파일을 변경하고, 커밋하고, 동일한 Git 저장소에 변경 사항을 푸시하기 시작했습니다. 그러나 여러분이 변경한 내용이 제가 변경한 내용과 충돌하기 때문에 Git이 충돌을 감지했습니다. index.html 的文件。我对文件进行了修改,进行了提交,并将更改推送到 Git 远程仓库。你也对同一个文件进行了修改,进行了提交,并开始将更改推送到同一个 Git 仓库。然而,Git 检测到一个冲突,因为你所做的更改与我所做的更改冲突。

以下是你可以解决冲突的方法:

1、从远程仓库获取并合并最新更改:

$ git pull

2、识别一个或多个有冲突的文件:

$ git status

3、使用文本编辑器打开冲突文件:

$ vim index.html

4、解决冲突。冲突的修改会被标记为 <<<<<<< HEAD。你需要选择要保留和放弃哪些修改,并手动编辑文件以合并冲突的修改。

以下是一个示例:

<<<<<<< HEAD<div ><h1>Sample text 1</h1></div>=======<div ><h1>Sample text 2</h1></div>>>>>>>> feature-branch

在这个例子中,我将网站标题更改为 Sample text 1,而你将标题更改为 Sample text 2。两种更改都已添加到文件中。现在你可以决定保留哪一个标题,或者编辑文件以合并更改。在任一情况下,删除指示更改开始和结束的标记,只留下你想要的代码:

<div ><h1>Sample text 2</h1></div>

5、保存所有更改,并关闭编辑器。

6、将文件添加到暂存区:

$ git add index.html

7、提交更改:

$ git commit -m "Updated h1 in index.html"

此命令使用消息 Resolved merge conflict

충돌을 해결하는 방법은 다음과 같습니다.

1. 원격 저장소에서 최신 변경 사항을 가져오고 병합합니다.

$ git push

2. 하나 이상의 충돌하는 파일을 식별합니다.

rrreee

3. 🎜rrreee🎜 4. 갈등을 해결하세요. 충돌하는 변경 사항은 유지하고 삭제할 변경 사항을 선택하고 파일을 수동으로 편집하여 충돌하는 변경 사항을 병합해야 합니다. 🎜🎜예는 다음과 같습니다. 🎜rrreee🎜이 예에서는 웹사이트 제목을 샘플 텍스트 1 및 제목을 샘플 텍스트 2 두 가지 변경 사항이 모두 파일에 추가되었습니다. 이제 유지할 헤더를 결정하거나 파일을 편집하여 변경 사항을 통합할 수 있습니다. 두 경우 모두 변경 사항의 시작과 끝을 나타내는 마커를 제거하고 원하는 코드만 남겨두세요. 🎜rrreee🎜 5. 모든 변경 사항을 저장하고 편집기를 닫습니다. 🎜🎜6. 준비 영역에 파일 추가: 🎜rrreee🎜7. 변경 사항 제출: 🎜rrreee🎜 이 명령은 병합 충돌 해결 변경 사항을 제출합니다. 🎜🎜8. 원격 저장소에 변경 사항 푸시: 🎜rrreee🎜결론🎜🎜병합 충돌은 코드에 집중해야 하는 좋은 이유입니다. 파일에서 더 많은 변경을 할수록 충돌이 발생하기가 더 쉬워집니다. 더 많은 커밋을 해야 하며 각 커밋은 더 적게 변경되어야 합니다. 여러 기능 향상이나 버그 수정을 포함하는 모놀리식 대규모 변경은 피해야 합니다. 명확한 의도가 있는 커밋은 추적하기가 더 쉽기 때문에 프로젝트 관리자도 감사할 것입니다. Git 병합 충돌이 처음 발생하면 두려울 수도 있지만 이제 해결 방법을 알았으므로 해결이 쉽다는 것을 알게 될 것입니다. 🎜

위 내용은 Git 병합 충돌을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제