programing

Git checkout: 경로 업데이트가 분기 전환과 호환되지 않습니다.

showcode 2023. 5. 20. 11:00
반응형

Git checkout: 경로 업데이트가 분기 전환과 호환되지 않습니다.

문제는 지점 전환 시 Fatal Git 오류와 관련이 있습니다.

명령을 사용하여 원격 분기를 가져오려고 합니다.

git checkout -b local-name origin/remote-name

하지만 다음 오류 메시지가 표시됩니다.

fatal: git checkout: 경로 업데이트가 분기 전환과 호환되지 않습니다.
커밋으로 확인할 수 없는 'origin/remote-name'을(를) 체크아웃하려고 했습니까?

분기를 수동으로 생성한 다음 원격 분기를 풀하면 새 복제본을 만들고 분기를 체크아웃하는 것처럼 작동합니다.

사용 중인 리포지토리에서 작동하지 않는 이유는 무엇입니까?

로컬 Gitrepo가 아직 인식하지 못하는 원격 지점을 체크아웃하려고 할 때 발생한다고 생각합니다.시도:

git remote show origin

체크아웃할 원격 지점이 "추적된 원격 지점"이 아닌 "새 원격 지점" 아래에 있으면 먼저 가져와야 합니다.

git remote update
git fetch

이제 작동해야 합니다.

git checkout -b local-name origin/remote-name

대체 구문,

git fetch origin remote_branch_name:local_branch_name

이 스레드에서 읽을 수 있는 대부분의 내용을 시도했지만 성공하지 못했고, 이 중 하나를 우연히 발견했습니다. 원격 분기가 "git branch -r"표시되지 않습니다.

내 .git/config 파일이 잘못된 것으로 드러났습니다.간단한 수정을 한 후 모든 가지가 나타났습니다.

로부터

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/master:refs/remotes/origin/master

로.

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

속임수를 썼습니까?

이것이 도움이 되는지 아니면 질문과 정확히 관련이 있는지는 모르겠지만 원격 저장소에서 단일 분기만 가져오고 체크아웃하려고 하면 다음 git 명령이 유용합니다.

url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>

git init
git remote add origin $url
git fetch origin $branch:origin/$branch
git checkout -b $branch --track origin/$branch

위의 어떤 것도 나에게 효과가 없었습니다.제 상황은 조금 다릅니다. 원격 지점이 원래 위치가 아닙니다.하지만 다른 저장소에 있습니다.

git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname

팁: 다음 출력에 원격 분기가 표시되지 않는 경우git branch -v -a확인할 방법이 없습니다.

1.7.5.4에 대한 작업 확인

저에게 효과가 있었던 것은:

git fetch

원격으로 모든 지점에 대한 모든 참조를 기계로 끌어옵니다.그럼 할 수 있겠군요

git checkout <branchname>

그리고 그것은 완벽하게 작동했습니다.상위 투표된 답변과 비슷하지만, 조금 더 간단합니다.

remote-name이라는 이름의 원격 지점이 없지만 origin/remote-name이라는 이름의 로컬 지점을 실수로 생성한 것 같습니다.

어느 시점에 다음과 같이 입력할 수 있습니까?

git 브랜치 오리진/원격 이름

origin/remote-name이라는 로컬 분기를 생성하시겠습니까?다음 명령을 입력합니다.

git checkout origin/원격 이름

다음 중 하나가 표시됩니다.

분기 "origin/remote-name"으로 전환됨

그 말은 정말로 이름이 잘못된 지역 지점이라는 것을 의미하거나, 아니면

참고: 로컬 분기가 아닌 "오리진/재작업-iscoring"으로 이동이 체크아웃에서 새 지점을 만들려면 그렇게 할 수 있습니다.(지금 또는 나중에) -b를 다시 체크아웃 명령과 함께 사용합니다.예:
git checkout -b

그 말은 정말로 원격지라는 뜻입니다.

그다지 직관적이지는 않지만, 이것은 저에게 잘 맞습니다...

  mkdir remote.git & cd remote.git & git init
  git remote add origin $REPO
  git fetch origin $BRANCH:refs/remotes/origin/$BRANCH        

그런 다음 git branch --track 명령을 실행합니다...

  git branch --track $BRANCH origin/$BRANCH

저는 오타가 있었고 원격 지점이 없었습니다.

사용하다git branch -a원격 지점을 나열하다

당신의 문제가 이 다른 SO 질문 "체크아웃 문제"와 연결될 수 있습니까?

예: 다음과 관련된 문제:

  • 오래된 버전의 깃
  • 흥미로운 체크아웃 구문:git checkout -b [<new_branch>] [<start_point>],와 함께[<start_point>]새로운 지점을 시작하는 커밋의 이름을 참조하는 것.'origin/remote-name'그게 아닙니다.
    (원격 분기의 이름인 start_point는 지원하지 않습니다.)

참고: 체크아웃입니다.sh 스크립트는 다음과 같이 말합니다.

  if test '' != "$newbranch$force$merge"
  then
    die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
  fi

git checkout -b [] [remote_branch_name] 구문이 분기 이름을 바꾸고 호환되지 않는 것으로 간주되는 새 분기의 새 시작점을 재설정하는 것과 같습니다.

수 십억 번의 추가된 리모컨을 가져와도 물방울이 수영장에 있음에도 불구하고 나타나지 않았습니다.--tags 옵션이 다음에 주어져서는 안 되는 것으로 나타났습니다.git remote add이유야 어떻든.git/config에서 수동으로 제거하여 git fetch가 ref를 생성하도록 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/945654/git-checkout-updating-paths-is-incompatible-with-switching-branches

반응형