git branch-dは警告を出します


91

ローカルブランチを削除した後の警告メッセージをよりよく理解したいだけです

警告:に'old_branch'マージされたが'refs/remotes/origin/old_branch'、まだマージされていないブランチを削除してい HEADます。


28
old_branchを--squashにマージすると、ローカルで削除するときに常にこの警告が表示されます。インデックスを押しつぶすとリセットされるため、old_branch HEAdと一致しません
Antoine Wils

他の答えは正しいですが、少なくとも私の場合はアントワーヌのコメントが理由でした。
Squrppi

回答:


66

これは、変更がのブランチにプッシュされていることを警告しているだけですがorigin、それらはにマージされていないmasterため、ローカルで削除するだけです。

そのブランチのローカルコピーがもうないことを警告していますが、 origin

リモートブランチも削除する場合は、 git push --delete origin old_branch


9
ええ、これにmasterは関与していません。むしろ、現在のブランチを意味します。;)
フェルナンドエスピノサ2016

1
git branch -d branch_nameローカルでのみブランチを削除することになっているを実行しても、この警告が表示されます。この場合、なぜ警告が必要なのですか?
Akshay Damle 2017年

2
ただし、origin / old_branchはorigin / masterにマージされます。後で、マスターブランチでgit pulloriginを実行しました。それでも同じエラー。このバグはGHではありませんか?
vikramvi 2018年

36

現在masterチェックアウトしているとすると、で行われた変更がにold_branch存在しないことを意味しますmaster。しかし、彼らはあるに存在するold_branchorigin


4
うん。これが正解です!「しかしまだマージされていませんHEAD」、HEADここではローカルマスターブランチのHEADを参照します。
Devy 2015

3
ただし、origin / old_branchはorigin / masterにマージされます。後で、マスターブランチでgit pulloriginを実行しました。それでも同じエラー。このバグはGHではありませんか?
vikramvi 2018年

1
@vikramvimasterローカルでチェックアウトしたとすると、いずれかのコミットのSHAが変更された場合でも発生する可能性があります。つまり、にリベースorigin/old_branchorigin/masterます。早送りであったとしても、これにより、からの新しいコミットごとに新しいSHAが生成され、ローカルブランチに変更をプルした後origin/old_branch、gitはローカル内の元のSHAold_branchをマージされていないものとして認識しますmaster。これが発生する理由については、この回答この回答を確認できます。

8

これは、ローカルブランチold_branchがリモートのリモートブランチold_branchで最新であるが、リポジトリのメインブランチと見なされるoriginブランチにマージされていないことを意味しますmaster

これはgitからの予防策にすぎません。それはあなたにヒントを与えます:多分あなたはトピックブランチであなたの仕事をし、それをメインブランチにマージするのを忘れましたか?


更新

Gitは、変更を失うことを警告します。たとえばold_branch、マスターgitにがない場合は、マスターにマージされていないブランチを削除することもできません(許可されますが、オプションのキー-Dを使用しforce-deleteます)。


7
必ずしもmasterではありませんが、現在のHEAD
冷凍炎

したがって、-Dは、削除されるブランチ(実際にはコミット)をリモートブランチと共有していない場合です。警告は、ブランチをリモートと共有(コミット)したことを通知するものですが、HEADにマージされていないだけです。HEADはHEADであり、remote / refs / HEADは同じではありません。ただし、リモートHEADとローカルHEADの違いについて間違っている場合は、訂正してください。
エリック

7

他の回答に追加するために、これは、変更がマスターにマージされる可能性があることを意味する場合もあります。マスターのローカルコピーがまだそれを反映していないということです。どちらの方法でも、これは、マスターのローカルコピーにオリジンでプッシュした変更がないことを通知するだけです。マージされた/マージされていない...多分、多分そうではない

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.