prosource

합병 갈등에 부딪혔어요.마지를 중단하려면 어떻게 해야 하나요?

probook 2023. 4. 13. 20:54
반응형

합병 갈등에 부딪혔어요.마지를 중단하려면 어떻게 해야 하나요?

하였습니다.git pull이치노

unmerged:   some_file.txt

You are in the middle of a conflicted merge.

파일에 대한 변경 내용을 포기하고 풀된 변경 내용만 유지하려면 어떻게 해야 합니까?

의 ★★★★★★★★★★★★★★★부터pullHEAD)HEAD^ 브랜치상의입니다.

git reset --hard HEAD

다른 하나는 변경사항이 변경사항보다 우선하도록 하는 것입니다.

이전 버전의 git에서는 "그들" 병합 전략을 사용할 수 있었습니다.

git pull --strategy=theirs remote_branch

그러나, 이것은 Junio Hamano(Git 메인터넌스)의 설명대로, 그 후 삭제되었습니다.링크에 기재되어 있듯이 대신 다음과 같이 합니다.

git fetch origin
git reset --hard origin

= 1.이면 git > = 1.6.1을 사용할 수 .git reset --merge.

> = 1이면 @Michael Johnson > = 1.7.4 > = @Michael Johnson > = 1.7.4 > michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael michael also also also 。git merge --abort.

항상 그렇듯이 병합을 시작하기 전에 커밋되지 않은 변경 사항이 없는지 확인하십시오.

git merge man 페이지에서

git merge --abort git reset --mergeMERGE_HEAD재합니니다다

MERGE_HEAD이치

또한 머지 시작 시 커밋되지 않은 변경에 대해서도 다음 절차를 수행합니다.

하기 전에 싶지 않은 " " "만"으로 하십시오.git stash전및 "Merge", "Merge", "Merge", "Merge", "Merge" 전git stash pop" " " " " " " " " "이렇게 하면 안 돼요"

git merge --abort

현재 충돌 해결 프로세스를 중단하고 병합 전 상태 재구성을 시도합니다.

시작 않은 하는 , " " " " " " "git merge --abort이러한 변경을 재구성할 수 없는 경우도 있습니다.따라서 git merge를 실행하기 전에 항상 변경을 커밋하거나 저장하는 것이 좋습니다.

git merge --abort git reset --mergeMERGE_HEAD재합니니다다

http://www.git-scm.com/docs/git-merge

가을봤 i i i i i igit reset필요하죠.

git revert 다른 것을 svn revert- 않은, - 「」(「」)는 「」(「」(「」) 「」(「」)」(「」(「」)는 「」(「」git revert커밋을 「실시」합니다.

git reset 하는 일을 svn revert아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아.

git > = 1.6.1의 경우:

git merge --abort

이전 버전의 git에서는 다음과 같이 처리됩니다.

git reset --merge

또는

git reset --hard

Marge 스텝은 다음과 같이 중단할 수 있습니다.

git merge --abort

그렇지 않으면 변경 내용을 유지할 수 있습니다(어느 브랜치에 있는지).

git checkout --ours file1 file2 ...

그렇지 않으면 다른 브랜치 변경을 유지할 수 있습니다.

git checkout --theirs file1 file2 ...

이 특정 사용 사례에서는 병합을 실제로 중단하고 싶지 않습니다. 특정 방법으로 충돌을 해결하십시오.

특별히 리셋하여 다른 전략으로 머지를 실행할 필요도 없습니다.이 경합은 git에 의해 올바르게 강조 표시되었으며 상대편 변경을 수용하기 위한 요건은 이 한 파일에 대해서만 적용됩니다.

및할 수 은 conflict git에 의해 .)git mergetool를 사용할 수 .)git show보기 위해서요.

# common base:
git show :1:_widget.html.erb

# 'ours'
git show :2:_widget.html.erb

# 'theirs'
git show :3:_widget.html.erb

리모트 버전의 말 그대로를 사용하는 경합을 해결하는 가장 간단한 방법은 다음과 같습니다.

git show :3:_widget.html.erb >_widget.html.erb
git add _widget.html.erb

또는 git > = 1.6.1의 경우:

git checkout --theirs _widget.html.erb

'''은 '''로 되어 있습니다'''git reset --merge입니다.git merge --abort은가 있다.은주주가가가가git merge --abort와 동등하다.git reset --mergeMERGE_HEAD 내용은 에서 확인할 수 .합병하다

git merge --abort는 MERGE_HEAD가 존재하는 경우의 git reset --merge와 동일합니다.

Marge 후 하지 않는 MERGE_HEAD은 "Marge"로 할 수 git reset --merge , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , .git merge --abort같은 것을 위한 오래된 구문일 뿐만 아니라 새로운 구문일 수도 있습니다.

저는 개인적으로git reset --merge위의 시나리오와 유사한 시나리오에서는 훨씬 강력하며 일반적으로 병합에 실패합니다.

머지 충돌이 발생하여 커밋할 것이 없는데도 머지 오류가 표시되는 경우.아래 명령어를 모두 적용한 후

git reset --hard HEAD
git pull --strategy=theirs remote_branch
git fetch origin
git reset --hard origin

삭제해 주세요

.filength\index.lock

[복구 시 다른 위치에 붙여넣기 잘라내기] 파일을 만든 후 원하는 버전에 따라 다음 명령 중 하나를 입력합니다.

git reset --hard HEAD
git reset --hard origin

도움이 되었으면 좋겠어!!!

작업 복사본의 상태를 보존하는 다른 방법은 다음과 같습니다.

git stash
git merge --abort
git stash pop

이것은, 다음의 커밋으로 브랜치 관계를 파기하기 때문에, Subversion에서의 Marge와 같은 것이 되기 때문에, 일반적으로는 반대합니다.

Git 1.6.1.3은 머지 양쪽에서 체크 아웃할 수 있었기 때문에:

git checkout --theirs _widget.html.erb

OP가 원하는 것은 아닐 수도 있지만, 저는 안정적인 브랜치를 기능 브랜치에 통합하려고 했는데 충돌이 너무 많았습니다.HEAD가 많은 커밋으로 변경되었기 때문에 변경을 리셋할 수 없었기 때문에 쉬운 해결책은 안정적인 지점으로 체크아웃을 강요하는 것이었습니다.그런 다음 다른 브랜치로 체크아웃할 수 있으며, 머지 전 상태로 유지됩니다.

git checkout -f master

git checkout side-branch

이런 종류의 문제에 휘말리지 않도록 하기 위해, 다음과 같이 확장할 수 있습니다.git merge --abort접근하여 별도의 테스트 분기를 만든 후 병합합니다.

사례: 토픽 브랜치가 있습니다.고객님이 주의를 산만하게 해서 병합된 것이 아닙니다.뭔가 일이 생겼기 때문에/하지만 이미 준비가 되어 있습니다.

이것을 마스터에 병합할 수 있습니까?

테스트 브랜치에서 솔루션을 견적/검색한 후 테스트 브랜치를 포기하고 토픽 브랜치에 솔루션을 적용합니다.

# Checkout the topic branch
git checkout topic-branch-1

# Create a _test_ branch on top of this
git checkout -b test

# Attempt to merge master
git merge master

# If it fails you can abandon the merge
git merge --abort
git checkout -
git branch -D test  # we don't care about this branch really...

경합을 해결합니다.

# Checkout the topic branch
git checkout topic-branch-1

# Create a _test_ branch on top of this
git checkout -b test

# Attempt to merge master
git merge master

# resolve conflicts, run it through tests, etc
# then
git commit <conflict-resolving>

# You *could* now even create a separate test branch on top of master
# and see if you are able to merge
git checkout master
git checkout -b master-test
git merge test

마지막으로 토픽 브랜치를 다시 체크 아웃하고 테스트 브랜치에서 수정을 적용한 후 PR로 넘어갑니다.마지막으로 테스트 및 마스터 테스트를 삭제합니다.

관련되셨나요?네, 하지만 준비가 다 될 때까지 주제나 주요 지사에 영향을 주지 않을 거예요.

다음과 같은 작업을 수행할 수 있습니다(단일 파일을 병합 전 상태로 되돌립니다).

git reset *currentBranchIntoWhichYouMerged* -- *fileToBeReset*

언급URL : https://stackoverflow.com/questions/101752/i-ran-into-a-merge-conflict-how-do-i-abort-the-merge

반응형