itsource

"경로를 업데이트하는 동시에 분기로 전환할 수 없음"

mycopycode 2023. 7. 1. 08:35
반응형

"경로를 업데이트하는 동시에 분기로 전환할 수 없음"

나는 가끔 그것을 사용합니다.checkout -b새 분기를 만들고 동시에 체크아웃하여 하나의 명령으로 추적을 설정하는 옵션입니다.

새로운 환경에서는 다음과 같은 오류가 발생합니다.

$ git checkout -b test --track origin/master
fatal: Cannot update paths and switch to branch 'test' at the same time.
Did you intend to checkout 'origin/master' which can not be resolved as commit?

Git는 왜 그것을 좋아하지 않습니까?이전에는 동일한 레포로 작동했습니다.

'origin/master커밋으로 해결할 수 없는 항목

이상함: 원격을 확인해야 합니다.

git remote -v

그리고 확인하세요.origin가져오기:

git fetch origin

그러면:

git branch -avv

(당신이 그것을 가져왔는지 확인하기 위해.origin/master지점)

마지막으로, Git 2.23+(2019년 8월)와 함께 혼란스러운 대신 사용하십시오.

git switch -c test --track origin/master

지점 이름에 오타가 있으면 동일한 오류가 발생합니다.

예를 들어, 기본적으로 코드를 체크아웃하는 트래비스 빌드와 같은 맥락에서 이 오류가 발생할 수 있습니다.git clone --depth=50 --branch=master내가 아는 한, 당신은 통제할 수 있습니다.--depth경유로.travis.yml그러나 그것은 아닙니다.--branch그러면 원격에서 단일 분기만 추적되므로 원하는 원격 참조를 추적하기 위해 원격을 독립적으로 업데이트해야 합니다.

이전:

$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master

해결 방법:

$ git remote set-branches --add origin branch-1
$ git remote set-branches --add origin branch-2
$ git fetch

이후:

$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/branch-1
remotes/origin/branch-2
remotes/origin/master

이 간단한 것이 저에게 효과가 있었습니다!

두 가지를 동시에 할 수 없다고 표시되면 분리합니다.

git branch branch_name origin/branch_name 

git checkout branch_name

이 문제가 발생하면 다음 단계를 수행할 수 있습니다.

  1. 다음 명령을 실행하여 로컬 리포지토리에 대해 알려진 분기를 나열합니다.

git 원격 쇼 오리진

다음을 출력합니다.

 remote origin
  Fetch URL: <your_git_path>
  Push  URL: <your_git_path>
  HEAD branch: development
  Remote branches:
    development                             tracked
    Feature2                                tracked
    master                                  tracked
    refs/remotes/origin/Feature1         stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    Feature2     merges with remote Feature2
    development  merges with remote development
    master       merges with remote master
  Local refs configured for 'git push':
    Feature2     pushes to Feature2     (up to date)
    development  pushes to development (up to date)
    master       pushes to master      (local out of date)
  1. URL 가져오기 등과 같은 세부 정보를 확인한 후 이 명령을 실행하여 원격에는 있지만 로컬에는 없는 새 분기(즉, 로컬 저장소에서 체크아웃할 수 있음)를 가져옵니다.
» git remote update

Fetching origin
From gitlab.domain.local:ProjectGroupName/ProjectName
 * [new branch]      Feature3    -> Feature3

보시다시피 원격에서 새 분기를 가져왔습니다.
마지막으로 이 명령을 사용하여 분기를 체크아웃합니다.

» git checkout -b Feature3 origin/Feature3

Branch Feature3 set up to track remote branch Feature3 from origin.
Switched to a new branch 'Feature3'

원격으로 분기를 추적( --track)하도록 Git에 명시적으로 지시할 필요는 없습니다.

위의 명령은 원격 분기를 원점에서 추적하도록 로컬 분기를 설정합니다.

분기에 공백이 있으면 이 오류가 발생합니다.

저의 경우, 지점 이름에 공백이 있습니다.

git checkout -b my-branch-name-with a-space
                                   ▲
        accidental space ──────────┘

공간을 처리합니다.

로컬 분기가 원격 분기를 추적하지 않기 때문에 발생합니다.Sassasi가 말했듯이 다음 명령을 사용해야 합니다.

git remote update
git fetch
git checkout -b branch_nameA origin/branch_nameB

나는 방금 내 문제를 해결했습니다.

저의 경우 아래 명령을 사용하여 원격 저장소의 최신 태그로 로컬 Git 저장소를 업데이트해야 했습니다.

git fetch --tags

원격 리포지토리 태그를 가져오는 명령은 조직의 Git 설정에 따라 다를 수 있습니다.

나서 이게한후에렇후.git checkout일했다.

먼저 리모컨을 확인해야 합니다: *master여야 합니다.

git pull (up-to-date)
git checkout -b branch-name (branch name without any spaces)
git status
git add .
git commit -m "comments goes here"
git push branch-name

리모컨을 추가해야 했습니다.

git remote -add myRemoteName('origin' in your case) remoteGitURL

그러면 나는 가져올 수 있었습니다.

git fetch myRemoteName

먼해야합다니저▁to다가 필요합니다.Fetch 분기하여 해당 할 수 " " (으)로 표시됨)" 명령을 합니다.checkout -band --track 포)과 함께 됩니다.

은 서브모듈 당신은서가실합야니다행해서디로르브듈모를 실행해야 합니다.git status.

많은 파일이 삭제된 것을 볼 수 있습니다.실행해도 됩니다.

  1. git reset .

  2. git checkout .

  3. git fetch -p

  4. git rm --cached submodules의 이름입니다.///newsoudles는 당신의 이름입니다.

  5. git submoudle add ....

git 원격 업데이트, git fetch, git checkout -b branch_nameA 오리진: branch_nameB

아마도 당신의 지역 지점이 원격 지점을 추적할 수 없기 때문인 것 같습니다.

원격 지점에서 새 지점을 만들기 위해 이 줄을 눌렀을 때 동일한 문제가 발생했습니다.

git checkout -b newbranch origin/ remotebranch

먼저 로컬 리포지토리를 업데이트할 수 있는 방법은 다음과 같습니다.

fetch --all

그런 다음 명령을 다시 올바르게 입력합니다.

git checkout -b newbranch origin/remotebranch

오리진/원격 분기와 원격 분기 사이에 공백을 두지 말고 모든 철자를 올바르게 입력해야 합니다.그 단계들은 제가 문제를 해결하는 데 도움이 되었습니다.

언급URL : https://stackoverflow.com/questions/22984262/cannot-update-paths-and-switch-to-branch-at-the-same-time

반응형