web-dev-qa-db-ja.com

gitブランチをチェックアウトして追跡することはできますが、プルすることはできません

そのため、gitリポジトリにcreative_marketというブランチがあります。コマンドgit checkout --track Origin/creative_marketを実行します。これは正常に機能します。 creative_marketブランチにあるはずのすべての変更が存在します。ただし、git pullを実行すると、次のエラーが発生します。

構成で、リモートからの参照 'creative_market'とマージするように指定されていますが、そのような参照はフェッチされていません。

さらに、git pull Origin creative_marketを実行すると、次のようになります。

致命的:リモート参照creative_marketが見つかりませんでした

致命的:リモートエンドが予期せずハングアップしました

git branch -aを実行すると、次のことが明確に示されます。

リモート/オリジン/ creative_market

そして、私の.git/configファイルは次のことを示しています。

[branch "creative_market"]
    remote = Origin
    merge = refs/heads/creative_market

これは私の.git/configファイルの他のすべてと一致します。

私はここで困惑しています。何か案は?

5
Mike Lentini

表示されるメッセージは、creative_marketブランチがリモートリポジトリに存在しないことを示している可能性があります。これは本当でしょうか?

次のコマンドで修正できます。

git checkout --track Origin/creative_market
git Push Origin creative_market

何が起こっているかを証明するもう1つの少し長い方法は、次のことを行うことです。

まず、コマンドgit branch creative_market2 Origin/creative_marketを使用してバックアップ参照を作成します。次に、git fetch -pを実行して、リモートに存在しなくなったリモート追跡ブランチをプルーニングします。ブランチが実際にリモートから削除された場合は、次のようなものが表示されます。

[my-repository]$ git fetch -p
 x [deleted]         (none)     -> Origin/creative_market

リモートリポジトリにブランチを再作成するには、ローカル参照をそのブランチにプッシュするだけです。

git Push --set-upstream Origin creative_market2:creative_market
6

ブランチのローカルリモートコピーを整理します

git fetch -p

ローカルブランチのアップストリームをリモート

git branch --unset-upstream
0
user349410