他の男がfooの上にバーを作成したが、その間にバズを作成してからマージすると、
$ git lola
* 2582152(HEAD、マスター)分岐 'otherguy'をマージ
| \
| * c7256de(otherguy)バー
* | b7e7176 baz
| /
* 9968f79 foo
注:git lolaは非標準ですが便利なエイリアスです。
サイコロなしgit revert
:
$ git revert HEAD
fatal:Commit 2582152 ...はマージですが、-mオプションが指定されていません。
チャールズ・ベイリーはいつものように素晴らしい答えを出しました。のように使用git revert
する
$ git revert --no-edit -m 1 HEAD
[master e900aad]「Merge branch 'otherguy'」を元に戻します
変更されたファイル0、挿入0(+)、削除0(-)
削除モード100644バー
のbar
履歴を効果的に削除して生成します
$ git lola
* e900aad(HEAD、マスター)「Merge branch 'otherguy'」を元に戻す
* 2582152分岐 'otherguy'をマージ
| \
| * c7256de(otherguy)バー
* | b7e7176 baz
| /
* 9968f79 foo
しかし、私は、あなたがしたい疑う捨てるコミットマージを:
$ git reset --hard HEAD ^
HEADは現在b7e7176 bazにあります
$ git lola
* b7e7176(HEAD、マスター)baz
| * c7256de(otherguy)バー
| /
* 9968f79 foo
マニュアルに記載されているとおりgit rev-parse
<rev>^
、たとえばHEAD ^、v1.5.1^0
リビジョンパラメータの
サフィックス^
は、そのコミットオブジェクトの最初の親を意味します。n番目の親を^<n>
意味します(つまりと同等)。特別なルールとして、はコミット自体を意味し、がコミットオブジェクトを参照するタグオブジェクトのオブジェクト名である場合に使用されます。 <rev>^
<rev>^1
<rev>^0
<rev>
したがって、を呼び出す前git reset
はHEAD^
(またはHEAD^1
)はb7e7176で、HEAD^2
c7256deでした。つまり、マージコミットの最初の親と2番目の親です。
git reset --hard
作業を破壊する可能性があるので注意してください。