programing

fatal: 현재 분기의 업스트림 분기가 현재 분기의 이름과 일치하지 않습니다.

css3 2023. 9. 12. 20:10

fatal: 현재 분기의 업스트림 분기가 현재 분기의 이름과 일치하지 않습니다.

원격 지점 체크아웃 후releases/rel_5.4.1Git GUI를 사용하면 예기치 않은 오류 메시지가 나타납니다.push:

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:releases/rel_5.4.1

To push to the branch of the same name on the remote, use

    git push origin rel_5.4.1

깃이 무슨 말을 하는지 모르겠어요.저는 아마 다음으로 밀고 싶습니다.origin releases/rel_5.4.1그 지점이 제가 체크아웃한 지점이기 때문입니다.그래서 두 가지 옵션 모두 제게는 맞지 않는 것 같습니다.

git status제가 지점에 있다고 합니다rel_5.4.1.

여기 제가 볼때 보이는 가지가 있습니다..git/config:

[branch "rel_5.4.1"]
    remote = origin
    merge = refs/heads/releases/rel_5.4.1

무슨 일입니까?

이 문제는 업스트림 분기와 로컬 분기의 이름이 일치하지 않는 경우에 발생하며, 때로는 발생하고 대개는 원하지 않는 경우에 발생합니다.

> git status
On branch release-1.2.3
Your branch is up to date with 'origin/master'.

이 문제를 해결하려면 다음을 실행합니다.

git branch --unset-upstream

그럼, 한번 달려보세요.git push다시, 당신은 사용할 것을 요구 받을 것입니다.--set-upstream업스트림 분기를 올바르게 설정하는 옵션입니다.

차려!이 답변이 가장 많은 표를 가지고 있고 기술적으로 정확하지만 문제는 다음과 같습니다.push.defaultoption, 보통 실제 문제가 로컬 브랜치와 업스트림 브랜치의 이름 사이의 의도하지 않은 불일치일 때. 이 답변의 지시를 맹목적으로 따르는 것은 당신의 변경사항이 잘못된 브랜치로 밀려나게 할 수 있습니다!안전한 빠른 수정을 위해서는 https://stackoverflow.com/a/24865780/2279059 를 참조하시기 바랍니다.

아마도 가장 중요한 세부사항을 놓치는 독자들의 이익을 위해 댓글에 잘 숨겨져 있습니다.

이것은 설정 때문입니다.그것은 무엇을 정의합니다.git입력할 때 실행합니다.git push(링크 참조).

질문에서, 분명히 설정은 다음과 같이 설정되었습니다.simple(기본값:git v2), 아마도 다음과 함께

git config --global push.default simple

이 말은, 그 말은git로컬 분기와 원격 분기가 정확히 일치하지 않으면 푸시를 거부합니다.

@TomSpurling이 언급한 바와 같이, 로컬 및 원격 지점에 대해 동일한 이름을 사용하는 것이 일반적이므로, 위의 설정이 더 안전하고 일반적인 사용에 권장됩니다.

그러나 로컬 지점이 다른 이름을 가진 다른 원격 지점을 추적하는 경우 다음을 변경해야 합니다.

git 단위로 추적 분기에 푸시할 수 있도록 허용하려면 다음을 사용합니다.

git config push.default upstream

참고: 모든 사용자에 대해 전체적으로 설정하려면gits, 쓰임새git config --global push.default upstream
하지만 그것을 맡기는 것이 아마도 더 나을 것입니다.git config --global push.default simple이 옵션은 반드시 필요한 워크로드에서만 설정할 수 있습니다.

해당 지역 지점의 이름은 다음과 같습니다.rel_5.4.1하지만 멀리 떨어져있는 지점은releases/rel_5.4.1(는, 에한한,한(/가 분원명에서 사람의 눈으로 읽기 쉽게 하는 것 외에는 특별한 의미가 없습니다.).

당신이 밀 때, 깃은 당신이 당신의 가지를 밀기를 원하는지 아닌지를 경계합니다.releases/rel_5.4.1(원격 분기 이름) 또는 새 원격 분기를 생성할지 여부.하지만 이름의 유사성은 주목할만합니다.

새 분기를 생성하려는 경우가 아니라면 올바른 명령은

git push origin HEAD:releases/rel_5.4.1

사용할 수도 있습니다.

git push origin rel_5.4.1:releases/rel_5.4.1

경고를 한 번에 해결하려면 원격 이름에 맞게 로컬 분기 이름을 변경합니다.

git branch -m releases/rel_5.4.1

이 오류는 다음과 같은 방법으로 한 번에 해결할 수 있습니다.

git branch releases/rel_5.4.1 -u origin/releases/rel_5.4.1

분기의 업스트림이 올바른 원격(다시)과 일치하도록 변경됩니다.

리모콘과 다른 로컬 지점 이름을 가지고 있는 것은 아닌 것 같습니다.Git너무 좋아요.다음을 발행해야 합니다.

git push origin HEAD:releases/rel_5.4.1

온갖 노력을 다하여

특정 지점에서 데이터를 푸시하는 동안 위와 같은 문제가 발생한 경우:

수정을 적용하기 전에 먼저 데이터를 로컬로 커밋하고 병합해야 합니다.git status수정된 파일 등을 확인합니다.

언급URL : https://stackoverflow.com/questions/24864700/fatal-the-upstream-branch-of-your-current-branch-does-not-match-the-name-of-you