source

Git 병합 오류

manysource 2023. 5. 25. 22:10

Git 병합 오류

저는 '라고 불리는 깃브랜치'를 가지고 있습니다.9-sign-in-out완벽하게 작동하는 코드로, 그리고 나는 그것을 마스터로 바꾸고 싶습니다.저는 현재 마스터 지점에 있습니다.

$ git branch
9-sign-in-out
* master

로 바꾸려고 합니다.9-sign-in-out지점, 하지만 제가 할 수 있는 일은 아닙니다.

$ git checkout 9-sign-in-out
app/helpers/application_helper.rb: needs merge
config/routes.rb: needs merge
error: you need to resolve your current index first

어떻게 하면 모든 마스터 분기 오류를 무시하고 설정을 변경할 수 있는지 알고 싶습니다.9-sign-in-out마스터로 분기하시겠습니까?기트베이스로 할까요?하지만 나는 코드를 잃고 싶지 않습니다.9-sign-in-out분점.

그 오류 메시지들이 무엇을 의미하는지 이해할 가치가 있습니다.needs merge그리고.error: you need to resolve your current index first병합에 실패했으며 해당 파일에 충돌이 있음을 나타냅니다.어떤 병합을 시도하던 것이 결국 좋지 않다고 판단한 경우 다음을 사용하여 정상 상태로 되돌릴 수 있습니다.

git reset --merge

그러나 그렇지 않으면 Git 매뉴얼에 설명된 대로 이러한 병합 충돌을 해결해야 합니다.


두 가지 방법 중 하나를 사용하여 이 문제를 해결한 후에는 다음을 확인할 수 있습니다.9-sign-in-out분점.이름을 변경하는 것과 관련된 문제9-sign-in-out로.masterwRAR의 답변에서 제안한 바와 같이, 만약 당신이 이전 마스터 브랜치를 다른 사람과 공유했다면, 이것은 그들에게 문제를 일으킬 것입니다. 왜냐하면 두 브랜치의 역사가 서로 엇갈리면, 당신은 다시 쓴 역사를 게시하게 될 것이기 때문입니다.

기본적으로 원하는 작업은 주제 분기를 병합하는 것입니다.9-sign-in-out안으로master항목 분기에 파일 버전을 정확하게 유지합니다.다음 단계를 사용하여 이 작업을 수행할 수 있습니다.

# Switch to the topic branch:
git checkout 9-sign-in-out

# Create a merge commit, which looks as if it's merging in from master, but is
# actually discarding everything from the master branch and keeping everything
# from 9-sign-in-out:
git merge -s ours master

# Switch back to the master branch:
git checkout master

# Merge the topic branch into master - this should now be a fast-forward
# that leaves you with master exactly as 9-sign-in-out was:
git merge 9-sign-in-out

분기 변경, 모든 로컬 수정 사항 삭제

git checkout -f 9-sign-in-out 

현재 분기 이름을 마스터로 변경하고 현재 마스터를 삭제

git branch -M master 

에 제시된 바와 같이git status,

Unmerged paths:                                                                                                                                
(use "git add <file>..." to mark resolution)                                                                                                 

    both modified:   a.jl                                  
    both modified:   b.jl

사용한git add병합을 완료하려면 다음과 같이 하십시오.git checkout잘 작동합니다.

dev 브랜치에서 master 브랜치로 전환할 때도 같은 문제가 있었습니다.변경 사항을 커밋하고 마스터 브랜치로 전환했습니다.커밋되지 않은 변경사항이 있을 수 있습니다.

그리고 당신은 이것을 시도할 수 있습니다.git reset --merge뿐만 아니라.충돌을 해결하고 되돌리는 데 사용할 수 있습니다.

모든 병합 충돌을 해결한 후에도 개발 지점에서 마스터로 전환하려고 할 때 GitHub Desktop을 사용할 때 이 메시지가 표시되었습니다.

입력 후git add *명령 줄에서 분기를 다시 전환할 수 있었습니다.

내 문제는 (마스터|REBASE 1/1)

이 명령은 나에게 효과가 있었습니다.

 git rebase --skip

이것은 질문에 설명된 정확한 시나리오에 대한 답변이 아닙니다.동일한 오류 메시지가 표시되는 다음 시나리오에 응답합니다.이 SO 링크는 이것을 검색할 때 가장 먼저 뜨기 때문에 여기에 게시합니다.


이 문제는 일반적으로 GitHub Desktop 사용자에게 발생합니다.

원격에서 삭제된 분기에서 로컬로 변경한 후 마스터에서 병합하여 충돌이 이미 해결된 경우, 이제는 때문에 변경 내용을 다른 분기로 이동할 수 없습니다.

you need to resolve your current index first,그리고.needs merge 오류, 오류,

아래에서 간단히 수행합니다.

# unset the upstream which is deleted 
- git branch --unset-upstream
# rename the branch
- git branch -m <newname>

여기서부터 당신은 일반적인 것을 할 수 있습니다.

git commit -m "Merged master fixed conflict."

언급URL : https://stackoverflow.com/questions/6006737/git-merge-errors