オプション1:問題を回避しますか?
gitにどの分岐をフェッチするかを明示的に指示しないと、この問題は回避できます。 (しかし、あなたはオプション2にスキップおそらく良く、枝の唯一の選択されたセットをフェッチする必要がある場合)あなたはクローンを作成するとき、あなたはすべてのブランチ
git clone --depth=1 --no-single-branch ...
それとも、既にクローニングとする場合が欲しいと言うことができます枝の残りの部分を取得:あなたの指示から、特定のブランチを探すためにフェッチを構成している代わりに
git remote set-branches --add origin <branch-name>
、あなたは可能性があり
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
git fetch --depth=1
(ローカルおよびリモートブランチを削除しますly)はもはや問題を引き起こさない。
(あなたはより多くの選択パターンを使用することができるかもしれませんが、あなたは「すべて」をしたくない場合には、個々の枝を選択し、選択することに賭けることができる。)
あなたはすでにリポジトリを持っている場合上記のようにいくつかのブランチを追加しました。設定したコマンドに似たconfigコマンドを "修復"する必要があります。 (。ただ、最初のコマンドで--unset-all
で--unset
を置き換える)
オプション2:
問題を修正しました。しかし、あなたが個々の枝を一覧表示するには、あなたの設定を必要とするならば、あなたはこれらのいずれかの方法で削除を処理することができます:
git config
を使用すると、手動でファイルを編集することなく直接設定を削除できます。
git config --unset remote.origin.fetch <branch-name>
<branch-name>
を正規表現として解釈されることに注意してください、そして、それは複数の値と一致する場合、それは動作しません。明示的なgit remote set-branches --remove
またはその何かがそこにはありませんが
:あなたは、複数のマッチング値についての警告を受けるのであれば、あなたは
git config --unset remote.origin.fetch origin.<branch-name>$
それともgit remote set-branches
を使用することができるような何かをする必要があると思いますソートの場合、set-branches
を--add
フラグなしで使用すると、リモートブランチのリストを完全にリセットできます。余りにも多くの支店がなければ、これはうまくいくでしょう。たとえば、あなたが
git remote set-branches origin master
を行うことができ、上記に示されているもののみ与えられた。しかし、あなたが他の枝の束を追加した場合、あなたはあまりにもそれらを一覧表示したり、それらを失うする必要があると思います。支店のいずれかがない場合は、原点を追跡するためのもの、実際には、
git remote set-branches origin master branch1 branch2 branch3 ...
あなたはブランチリスト
git branch | sed s/'\* '// | xargs git remote set-branches origin
を得るためのプロセスを自動化することができしかし、それは問題を持っているでしょう。
私は正確な状況を再現することができませんので、わかりません...しかし 'git branch --unset-upstream'は動作しますか? –
悲しいことに、 - 致命的だと報告しました:「には上流情報がありません。私は削除の前にそれを試してみましょう、それが助けるかどうかを確認してください –
dumbledad
ええ、私は最終的に元のエラーを再現しました(私が逃したステップを見つけました)。私はちょっと遊んで、私が見つけたものを知らせます。 –