목차
git이 병합 충돌을 해결하는 방법
1.1, 트렁크 분기 코드
2개가 있습니다.
Tom은 브랜치 A를 생성하고 파일을 다음과 같이 수정했습니다.
jack이 코드를 다음과 같이 수정했습니다
다음 단계는 충돌을 해결하는 방법입니다. 换 스위치를 B 브랜치로 다시 전환한 다음 메인 브랜치 코드
개발 도구 자식 Git에서 병합 충돌을 해결하는 방법

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

Jun 24, 2022 am 11:30 AM
git

git과의 병합 충돌을 해결하는 방법: 1. 충돌하는 파일을 편집하고, 파일에서 특수 기호를 삭제하고, 필요에 따라 코드를 수정합니다. 2. 지정된 파일을 준비 영역에 추가하고 지정된 분기를 git commit 명령을 사용하는 경우 파일 이름을 추가할 경우 오류가 발생합니다.

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

이 문서의 운영 환경: Windows 10 시스템, Git 버전 2.30.0, Dell G3 컴퓨터.

git이 병합 충돌을 해결하는 방법

git conflicts

여러 브랜치 코드가 하나의 브랜치로 병합되면 수정이 이루어진 위치에 관계없이 동일한 파일이 두 브랜치에서 수정됩니다.

; 2개의 브랜치에서 같은 파일의 이름이 수정되는 경우에도 발생합니다.

원인

브랜치를 병합할 때 두 브랜치는 동일한 파일에서 완전히 다른 두 가지 수정 사항 세트를 갖습니다. Git은 어느 것을 사용할지 결정할 수 없습니다. 새 코드의 내용은 수동으로 결정해야 합니다.

해결책

충돌하는 파일을 편집하고, 특수 기호를 삭제하고, 어떤 콘텐츠를 사용할지 결정하세요

스테이징 영역에 추가하세요

커밋을 실행하세요. (참고: git commit 명령을 파일 이름과 함께 사용할 수 없습니다. 이때 파일명에 오류가 보고되며, 제출 성공 후 병합이 사라집니다.)

예는 다음과 같습니다.

1 충돌 발생

1.1, 트렁크 분기 코드

2개가 있습니다.

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is master";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch master\n");
	
	return 0;
}
로그인 후 복사

README.md

this is master branch
로그인 후 복사

이때 Tom과 Jack은 각각 트렁크 브랜치의 코드를 뽑아서 수정했습니다.

1.2, Tom은 코드를 수정하고 병합을 위해 제출했습니다.

Tom은 브랜치 A를 생성하고 파일을 다음과 같이 수정했습니다.

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is A";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch AAA\n");
	
	return 0;
}
로그인 후 복사

README.md

this is AAA branch
로그인 후 복사

코드를 제출하고 트렁크에 병합했습니다.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git commit -m "A分支代码提交"
[A ccb2626] A分支代码提交
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git push origin A
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 376 bytes | 376.00 KiB/s, done.
Total 4 (delta 1), reused 3 (delta 1), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
remote: Create a pull request for &#39;A&#39; on Gitee by visiting:
remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:A...lingpe:master
To https://gitee.com/lingpe/kaol.git
 * [new branch]      A -> A

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (A)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$ git merge A
Updating 40c0115..ccb2626
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$ git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   40c0115..ccb2626  master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/tom/kaol (master)
$
로그인 후 복사

1.3, jack이 코드를 수정했습니다. 병합 제출

jack이 코드를 다음과 같이 수정했습니다

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is B";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch BBB\n");
	
	return 0;
}
로그인 후 복사

README.md

this is BBB branch
로그인 후 복사

코드를 제출하고 트렁크에 병합

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git commit -m "B分支代码提交"
[B bdcbe03] B分支代码提交
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git push origin B
Enumerating objects: 53, done.
Counting objects: 100% (53/53), done.
Delta compression using up to 12 threads
Compressing objects: 100% (34/34), done.
Writing objects: 100% (50/50), 4.66 KiB | 2.33 MiB/s, done.
Total 50 (delta 16), reused 43 (delta 12), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
remote: Create a pull request for &#39;B&#39; on Gitee by visiting:
remote:     https://gitee.com/lingpe/kaol/pull/new/lingpe:B...lingpe:master
To https://gitee.com/lingpe/kaol.git
 * [new branch]      B -> B

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git merge B
Updating 40c0115..bdcbe03
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
로그인 후 복사

충돌이 발생했습니다.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git push origin master
To https://gitee.com/lingpe/kaol.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/lingpe/kaol.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
로그인 후 복사

2. 충돌을 해결합니다

다음 단계는 충돌을 해결하는 방법입니다. 换 스위치를 B 브랜치로 다시 전환한 다음 메인 브랜치 코드

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git pull origin master
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (4/4), 356 bytes | 178.00 KiB/s, done.
From https://gitee.com/lingpe/kaol
 * branch            master     -> FETCH_HEAD
   40c0115..ccb2626  master     -> origin/master
Auto-merging main.cpp
CONFLICT (content): Merge conflict in main.cpp
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
로그인 후 복사
E

取 如何 如何 如何 如何 如何 如何如何 如何 如何如何 如何 如何 如何 如何 如何 如何 如何 如何 如何 如何 如何 如何 어떤 파일에 충돌이 있습니다.

main.cpp 파일을 직접 열면 어떤 코드 줄이 충돌을 일으키는지 알려주는 다음 특수 문자를 볼 수 있습니다.

#include <stdio.h>
#include <string.h>

int main()
{
<<<<<<< HEAD
        char data[100] = "my branch name is B";
=======
        char data[100] = "my branch name is A";
>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787
        int length = strlen(data);

        for(int i = 0; i < length; i++)
        {
                printf("%c", data[i]);
        }

<<<<<<< HEAD
        printf("branch BBB\n");
=======
        printf("branch AAA\n");
>>>>>>> ccb26269f42245dfcbedfbf2218419c5ab7f2787

        return 0;
}
로그인 후 복사

파일에서 직접 충돌을 수동으로 해결하세요. 파일에서 특수 문자를 제거하고 필요에 따라 코드를 수정합니다.

#include <stdio.h>
#include <string.h>

int main()
{
        char data[100] = "my branch name is B and A";
        int length = strlen(data);

        for(int i = 0; i < length; i++)
        {
                printf("%c", data[i]);
        }

        printf("branch BBB\n");
        printf("branch AAA\n");
        return 0;
}
~
로그인 후 복사

마찬가지로 README.md의 경우 충돌을 수동으로 해결하세요.

this is BBB and AAA branch
로그인 후 복사

충돌 해결 후 B 브랜치에 제출

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)
$ git add .

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B|MERGING)
$ git commit -m "解决冲突"
[B f30e1ea] 解决冲突

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git push origin B
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 405 bytes | 405.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   bdcbe03..f30e1ea  B -> B

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$
로그인 후 복사

마지막으로 B 브랜치를 트렁크에 병합하면 충돌이 발생하지 않습니다

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (B)
$ git checkout master
Switched to branch 'master'
Your branch and 'origin/master' have perged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git merge B
Updating bdcbe03..f30e1ea
Fast-forward
 README.md | 2 +-
 main.cpp  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$ git push origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/kaol.git
   ccb2626..f30e1ea  master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/jack/kaol (master)
$
로그인 후 복사

이 시점에서 충돌이 성공적으로 해결되었습니다

트렁크 브랜치의 코드를 보세요

main.cpp

#include <stdio.h>
#include <string.h>

int main()
{
	char data[100] = "my branch name is B and A";
	int length = strlen(data);
	
	for(int i = 0; i < length; i++)
	{
		printf("%c", data[i]);
	}
	
	printf("branch BBB\n");
	printf("branch AAA\n");
	return 0;
}
로그인 후 복사

README.md

this is BBB and AAA branch
로그인 후 복사

OK

추천 학습: "

Git Tutorial

"

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Grayscale 암호화 신탁 기금은 무엇입니까? Grayscale 암호화 신탁 기금은 무엇입니까? Mar 05, 2025 pm 12:33 PM

Grayscale Investment : Grayscale Investment Company는 기관 및 투자자에게 디지털 통화 투자 서비스를 제공합니다. 이 회사는 몇 가지 암호화 신탁을 출시했으며, 이는 시장의 광범위한 시장의 관심을 끌었지만, 이러한 자금이 토큰 가격에 미치는 영향은 크게 다릅니다. 이 기사는 Grayscale의 주요 Crypto Trust Funds 중 일부를 자세히 소개합니다. Grayscale Major Crypto Trust Fund는 Glance Grayscale Investment (2013 년 DigitalCurrencygroup이 설립 한)에서 제공되는 다양한 암호화 자산 신탁 기금을 관리하여 기관 투자자와 고격한 개인에게 준수 투자 채널을 제공합니다. 주요 자금에는 다음이 포함됩니다 : Zcash (Zec), Sol,

비트 : 비즈니스는 비트 코인을 무시한 큰 추세를 구매합니다 비트 : 비즈니스는 비트 코인을 무시한 큰 추세를 구매합니다 Mar 05, 2025 pm 02:42 PM

주간 관찰 : 비트 코인을 비축하는 비즈니스 - 양조 변화는 종종 주간 메모에서 간과 된 시장 동향을 지적합니다. Microstrategy의 움직임은 뚜렷한 예입니다. 많은 사람들이 "Microstrategy와 Michaelsaylor는 이미 잘 알려져 있습니다. 이것은 무엇에주의를 기울일 것인가?" 이보기는 일방적입니다. 최근 몇 달 동안 비트 코인을 예비 자산으로 채택한 것에 대한 심층적 인 연구에 따르면 이것은 고립 된 사례가 아니라 가장 큰 추세임을 보여줍니다. 나는 향후 12-18 개월 동안 수백 개의 회사가 소송을 따르고 대량의 비트 코인을 구매할 것이라고 예측합니다.

SFT를 상당히 능가하는 O1/DeepSeek-R1의 비밀은 멀티 모달 대형 모델에서도 사용할 수 있습니다. SFT를 상당히 능가하는 O1/DeepSeek-R1의 비밀은 멀티 모달 대형 모델에서도 사용할 수 있습니다. Mar 12, 2025 pm 01:03 PM

상하이 Jiaotong University, Shanghai Ailab 및 Chinese University of Hong Kong의 연구원들은 Visual-RFT (Visual Enhancement Fine Tuning) 오픈 소스 프로젝트를 시작했으며, 이는 LVLM (Language Big Model)의 성능을 크게 향상시키기 위해 소량의 데이터 만 필요합니다. Visual-Rft는 영리하게 DeepSeek-R1의 규칙 기반 강화 학습 접근 방식을 OpenAI의 RFT (Rencement Fine Tuning) 패러다임과 결합 하여이 접근법을 텍스트 필드에서 시야로 성공적으로 확장합니다. Visual-RFT는 시각적 하위 분류 및 객체 감지와 같은 작업에 대한 해당 규칙 보상을 설계함으로써 텍스트, 수학적 추론 및 기타 필드로 제한되는 DeepSeek-R1 메소드의 한계를 극복하여 LVLM 교육을위한 새로운 방법을 제공합니다. Vis

GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? GO에서 플로팅 포인트 번호 작업에 어떤 라이브러리가 사용됩니까? Apr 02, 2025 pm 02:06 PM

Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? GO의 어떤 라이브러리가 대기업에서 개발하거나 잘 알려진 오픈 소스 프로젝트에서 제공합니까? Apr 02, 2025 pm 04:12 PM

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

해외 버전의 배송 지역 데이터를 얻는 방법은 무엇입니까? 기성품 리소스는 무엇입니까? 해외 버전의 배송 지역 데이터를 얻는 방법은 무엇입니까? 기성품 리소스는 무엇입니까? Apr 01, 2025 am 08:15 AM

질문 설명 : 해외 버전의 배송 지역 데이터를 얻는 방법은 무엇입니까? 기성품 자원이 있습니까? 국경 간 전자 상거래 또는 세계화 된 비즈니스에서 정확하게 ...

Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Gitee Pages 정적 웹 사이트 배포 실패 : 단일 파일 문제를 해결하고 해결하는 방법 404 오류? Apr 04, 2025 pm 11:54 PM

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

Binance 런치 풀 란 무엇입니까? Binance 런치 풀에 참여하는 방법은 무엇입니까? Binance 런치 풀 란 무엇입니까? Binance 런치 풀에 참여하는 방법은 무엇입니까? Mar 05, 2025 pm 03:06 PM

BINANCE LANCHPOOL 심층 분석 : 고수익 마이닝 가이드 및 바이오 프로젝트에 대한 자세한 설명은 Binance LaunchPool에 대한 심층적 인 토론을 수행하고 참여 방법을 자세히 설명하며 최신 프로젝트 Bio Coin (BIOL)을 소개하는 데 집중할 것입니다. Binance는 세계 최대의 cryptocurrency 거래소로서 LaunchPool과 함께 고품질 프로젝트를 선택하여 투자자에게 쉬운 광업과 새로운 토큰을 얻을 수있는 기회를 제공했습니다. Binance 런치 풀 란 무엇입니까? Binance Launchpool은 지정된 통화를 맹세하여 무료로 새로운 토큰을 얻는 플랫폼입니다. 이는 주식 시장의 새로운 주식 가입과 유사하지만 참가자는 적고 경쟁이 적고 소규모 투자도 높은 수익을 얻을 수 있습니다.

See all articles