Gitはチェックアウト:アップデートパスおよびブランチの切り替えは互換性がありません

私の問題致命的なエラーGitのブランチの切り替えに関連します。

私は、リモートブランチを取得するには、このコマンドを使用するようにしてください

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

しかし、私は、このエラーメッセージが表示されます:

致命的:gitのチェックアウト:更新パスおよびブランチの切り替えは互換性がありません。
あなたは「起源/リモート-name」を提出することを決議することができませんチェックアウトする予定ですか?

私は手動でブランチを作成し、リモートブランチを引いた場合、それは同じクローンとチェックの新しいブランチを作成するように、動作することができます。

なぜそれがリポジトリIの使用には適用されませんか?


#1階

私のために役立ち:

git fetch

これは、すべての参照文献は、リモートコントロール上のすべての支店のために、あなたのマシンにダウンロードされます。そして、私が行うことができます

git checkout <branchname>

これは非常に有効です。最高の投票答えに似ていますが、もっと簡単に。


ハウス#2

十億を取得した後、まだプール内のスポットが、リモートコントロールが表示されない追加します。それは、どんな理由であれ、ということが判明していないはずです-タグのオプションが与えられましたgit remote add手動でREFをフェッチgitのを作成するために、.git / configのからそれを削除することができます。


ハウス#3

私はあなたがまだ発見されるようにリモートブランチのローカルのgitリポジトリをチェックしようとすると、この問題が発生したと考えています。試してみてください。

git remote show origin

あなたは、リモートブランチは、「新しいリモートブランチ」に位置し、「リモートブランチを追跡」されていませんチェックアウトしたい場合は、それらを取得する必要があります。

git remote update
git fetch

今では動作するはずです:

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

#4階

別の構文、

git fetch origin remote_branch_name:local_branch_name

ハウス#5

私は、リモート-nameというリモートブランチがあると思われるが、あなたは偶然起源/リモート名があるという名前のローカルブランチを作成します。

それはタイプは、いくつかの点で可能です:

gitの分岐元/リモート名

これにより、原点/ローカルブランチリモート名の名を作成しますか?次のコマンドを入力します。

Gitのチェックアウトの起源/リモート名

あなたはわかります。

ブランチ「起源/リモート名」に切り替え

それは本当にmisnamedローカルブランチであることをこれは意味、または

注:に移動する「起源/リワーク-isscoring」ローカルブランチではありません
あなたは、このチェックアウトから新しいブランチを作成したい場合は、そうすることがあり
(現在またはそれ以降)を再度checkoutコマンドで-bを使用します。例:
  gitのチェックアウト-b

それは本当にリモートブランチであることをこれが意味。


ハウス#6

私はこの記事で読んだことのほとんどの成功なしにしようとした後、私はこのつまずい:リモートブランチは「gitのブランチ-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/*

調子


#7の構築

私にとっては、私はタイプミスを持って、私のリモートブランチが存在しません。

使用git branch -aリストのリモートブランチ


#8の構築

わからないあなたは、リモートリポジトリから取得し、チェックアウトしようとした場合にのみ、これはしかし、あなたの問題のために有用または完全な相関関係にある場合には枝を、次の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

ハウス#9

私のために上記のいずれもありません。私の状況は私がリモートブランチではないんだけど、ちょっと違うの原点しかし、異なるリポジトリインチ

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

ヒント:次の出力は場合git branch -v -aリモートブランチを見ていない、それを検出することはできません。

動作することを確認してください1.7.5.4


ハウス#10

それは非常に直感的ではないが、それは私のためによく働く......

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

そして、gitのブランチ--trackのコマンドを実行します......

  git branch --track $BRANCH origin/$BRANCH

ハウス#11

あなたの質問はSOやその他の問題かどうかもしれ「問題のチェックアウト」に関連しましたか

つまり、次の質問に関連した問題:

  • Gitリポジトリの古いバージョン
  • 奇妙なチェックアウトの構文は次のようになりますgit checkout -b [<new_branch>] [<start_point>][<start_point>]名前を提出すると、新しいブランチを開始し、参照する'origin/remote-name'ことはありません。
    (ただし、は、git branchリモートブランチの名前としてサポートstart_pointを行います)

注:checkout.shスクリプト言うには、次のとおりです。

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

これは、構文gitのチェックアウト-b [] [remote_branch_name]、などの名前が変更された分岐のようなものだと互換性がないと考えられている新しいブランチのための新たな出発点をリセットします。

オリジナルの記事は、0公表 ウォンの賞賛2 ビュー6806を

おすすめ

転載: blog.csdn.net/asdfgh0077/article/details/104085898