これが意味すること
あなたのアップストリームorigin
、つまりあなたが呼ぶリモートは、という名前のブランチをもう持っていないか、持っていなかったかもしれません(この情報だけから判断することは不可能です)feature/Sprint4/ABC-123-Branch
。これには特に一般的な理由が1つあります。誰か(おそらくあなたではない、またはあなたが覚えているはずではない)が、他のGitリポジトリのブランチを削除したためです。
何をすべきか
これは何をしたいかによります。以下の説明セクションを参照してください。あなたはできる:
- リモートでブランチを作成または再作成する、または
- ローカルブランチを削除する、または
- あなたが考えることができる他の何か。
討論
実行している必要がありますgit pull
(実行しているgit merge
場合は、別のエラーメッセージが表示されるか、エラーメッセージがまったく表示されません)。
を実行するとgit fetch
、構成のセクションのurl
下にある行に基づいて、Gitが別のGitに接続し[remote "origin"]
ます。そのGitはupload-pack
、とりわけGitにすべてのブランチのリストを送信するコマンド()を実行します。git ls-remote
これがどのように機能するかを確認するために使用できます(試してみてください、それは教育的です)。これをGitリポジトリで実行すると、次のようになりますgit
。
$ git ls-remote origin
From [url]
bbc61680168542cf6fd3ae637bde395c73b76f0f HEAD
60115f54bda3a127ed3cc8ffc6ab6c771cbceb1b refs/heads/maint
bbc61680168542cf6fd3ae637bde395c73b76f0f refs/heads/master
5ace31314f460db9aef2f1e2e1bd58016b1541f1 refs/heads/next
9e085c5399f8c1883cc8cdf175b107a4959d8fa6 refs/heads/pu
dd9985bd6dca5602cb461c4b4987466fa2f31638 refs/heads/todo
[snip]
refs/heads/
エントリが、リモートに存在するブランチの全てをリスト、1対応と一緒に(のIDをコミットrefs/tags/
エントリIDがコミットではなく、オブジェクトタグを指すことができます)。
Gitはこれらの各ブランチ名を取得し、同じセクションの行に従って変更します。この場合、あなたのGitは置き換えて、たとえば、。あなたのGitは出くわすすべてのブランチ名でこれを行います。fetch
remote
refs/heads/master
refs/remotes/origin/master
また、元の名前を特殊ファイルに記録しますFETCH_HEAD
(自分の.git
ディレクトリを覗くと、このファイルが表示されます)。このファイルは、フェッチされた名前とIDを保存します。
このgit pull
コマンドは、便利なショートカットとして意図さgit fetch
れています。適切なリモートで実行され、セクションのgit merge
指示に従ってgit rebase
マージ(またはリベース)するために必要な引数を使用して(または、指示された場合は)実行され[branch ...]
ます。この場合、[branch "feature/Sprint4/ABC-123-Branch"]
セクションはからフェッチしてorigin
、という名前で見つかったIDとマージするように言っていますrefs/heads/feature/Sprint4/ABC-123-Branch
。
その名前で何も見つからなかったので、git pull
文句を言ってやめます。
これを2つの個別のステップとして実行し、git fetch
その後git merge
(またはgit rebase
)に実行した場合、Gitはキャッシュされたremotes/origin/
リモート追跡ブランチを調べて、何をマージまたはリベースするかを確認します。一度にそのようなブランチがあった場合でも、リモート追跡ブランチがある可能性があります。この場合、エラーメッセージは表示されません。そこに、このような枝はなかった、またはあなたが実行している場合場合git fetch
に--prune
(デッドリモート追跡の枝を除去する)ので、あなたは何の対応するリモート追跡ブランチを持っていないことを、あなたは苦情になるだろうが、それはを参照してしまうorigin/feature/Sprint4/ABC-123-Branch
代わりに。
どちらの場合も、feature/Sprint4/ABC-123-Branch
namedのリモートには現在存在しないと結論付けることができますorigin
。
それはおそらく一度に存在し、おそらくあなたはリモート追跡ブランチからローカルブランチを作成したでしょう。その場合は、おそらくまだリモート追跡ブランチがあります。リモートからブランチを削除したユーザーとその理由を調べるために調査するか、何かをプッシュしてブランチを再作成するか、リモート追跡ブランチやローカルブランチを削除します。
1ええと、少なくともそれが認めようとしているすべてのこと。しかし、特にいくつかの参照を隠していない限り、リストにはすべてが含まれています。