web-dev-qa-db-ja.com

「同時にパスを更新してブランチに切り替えることはできません」

私は時々checkout -bオプションを使用して新しいブランチを作成し、同時にそれをチェックアウトして1つのコマンドでトラッキングを設定します。

新しい環境では、私はこのエラーが出ます:

$ 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はなぜそれを好まないのですか?これは同じリポジトリで動作していました。

172
marekful

コミットとして解決できない 'Origin/master'

奇妙:あなたはあなたのリモコンをチェックする必要があります:

git remote -v

そしてOriginが取得されていることを確認してください。

git fetch Origin

その後:

git branch -avv

Origin/masterブランチを取得したかどうかを確認するため)

185
VonC

FWIW:あなたがあなたの支店でタイプミスをしているなら、あなたはこれと同じエラーを受けるでしょう。

70
Ludder

このエラーは、次のような状況で発生します。 Travisのビルドは、デフォルトでgit clone --depth=50 --branch=masterでコードをチェックアウトします。私の知る限りでは、--depthを介して.travis.ymlを制御できますが、--branchを制御することはできません。その結果、リモートで追跡されるブランチは1つだけになるので、リモートを更新して目的のリモートの参照を追跡する必要があります。

前:

$ 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
50
Bob Aman

この簡単なことは私のために働いた!

同時に2つのことができないと言われた場合は、それらを分けてください。

git branch branch_name Origin/branch_name 

git checkout branch_name
18
Ashwini Reddy

この問題に遭遇したときは、次の手順に従うことができます。

  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

ご覧のとおり、新しいブランチはリモートから取得されています。
3。最後に、このコマンドでブランチをチェックアウトしてください

» git checkout -b Feature3 Origin/Feature3

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

Remoteでブランチを追跡するように(- trackを使用して)Gitに明示的に指示する必要はありません。

上記のコマンドは、Originからのリモートブランチを追跡するようにローカルブランチを設定します。

9
ssasi

私にはリモコンを追加する必要がありました:

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

それから私は取り出すことができました

git fetch myRemoteName
1
RayLoveless

ブランチに空白があると、このエラーが発生します。

1
dansek

それはあなたのローカルブランチがリモートブランチを追跡しないことが原因で起こります。 ssasiが言ったように、あなたはこれらのコマンドを使う必要があります:

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

私は今問題を解決しました…….

1
questionKing

最初にリモート(特定のブランチ)のFetchname__を作成する必要があります。それから、ローカルのbrを作成し、コマンドを使用してそのリモートブランチでそれを追跡することができます(すなわち、-bと--trackでcheckoutname__)。

0
Raheel Hasan

次のコマンドを使用できます。git remote update、git fetch、git checkout -b branch_nameA出典:branch_nameB

私は多分それはあなたのローカルブランチがリモートブランチを追跡できないためだと思います

0
kang

サブモジュールdirに移動してgit statusを実行してください。

あなたはたくさんのファイルが削除されたのを見るかもしれません。あなたは走るかもしれません

  1. git reset .

  2. git checkout .

  3. git fetch -p

  4. git rm --cached submodules // submoudlesはあなたの名前です

  5. git submoudle add ....

0
knight2016