35

2 つのブランチをマージする必要がsecondありfirstましsecondた。これが私がしたことです:

  • git cloneプロジェクトを更新して新しいコピーを取得する
  • git checkout --track origin/second、いくつかの変更を行い、コミットしました
  • git checkout --track origin/first、いくつかの変更を行い、コミットしました
  • git merge second(gitは「再帰によって行われたマージ」と言っています)
  • git branch -d second

次に、git は次のように言います。

$ git branch -d second
warning: not deleting branch 'second' that is not yet merged to
         'refs/remotes/origin/second', even though it is merged to HEAD.
error: The branch 'second' is not fully merged.
If you are sure you want to delete it, run 'git branch -D second'.

なぜこうなった?マージ後にこのメッセージを受け取ったことはありません。マージは問題なく機能し、競合はありませんでした。secondブランチを安全に削除するにはどうすればよいですか?

4

3 に答える 3

52

私の実験と @knittl と @twalberg のコメントに基づくと、git はsecondブランチを削除する前にブランチに変更をプッシュすることを望んでいたようです。

やった:

$ git checkout second
$ git push origin second
$ git checkout first
$ git branch -d second

警告なしで機能しました。

于 2012-09-20T20:49:49.453 に答える