Diyelim ki diğer adam foo'nun üstünde bar yarattı, ama bu arada baz oluşturdunuz ve sonra birleştiniz,
$ git lola
* 2582152 (HEAD, master) Birleştirme dalı 'otherguy'
| \
| * c7256de (otherguy) çubuğu
* | b7e7176 baz
| /
* 9968f79 foo
Not: git lola standart olmayan ancak kullanışlı bir takma addır.
İle zar yok git revert
:
$ git revert HEAD
ölümcül: 2582152 taahhüdü ... bir birleştirme, ancak -m seçeneği verilmedi.
Charles Bailey her zamanki gibi mükemmel bir cevap verdi . Olduğu git revert
gibi kullanma
$ git revert --no-edit -m 1 BAŞLIK
[master e900aad] "Şubeyi 'otherguy' birleştir"
0 dosya değişti, 0 ekleme (+), 0 silme (-)
silme modu 100644 çubuğu
etkili bir şekilde siler bar
ve üretir
$ git lola
* e900aad (HEAD, master) "Şubeyi birleştir 'otherguy'"
* 2582152 'otherguy' dalını birleştir
| \
| * c7256de (otherguy) çubuğu
* | b7e7176 baz
| /
* 9968f79 foo
Ama birleştirme taahhüdünü atmak istediğinizden şüpheleniyorum :
$ git reset --hard HEAD ^
HEAD şimdi b7e7176 baz'da
$ git lola
* b7e7176 (KAFA, master) baz
| * c7256de (otherguy) çubuğu
| /
* 9968f79 foo
Belgelendiği gibi git rev-parse
manuel
<rev>^
, örneğin HEAD ^,v1.5.1^0
Bir ^
revizyon parametresinin soneki , söz konusu tamamlama nesnesinin ilk üst öğesi anlamına gelir. n- ebeveyni ^<n>
anlamına gelir ( yani eşdeğeri ). Özel bir kural olarak, komutun kendisi anlamına gelir ve bir komut nesnesine başvuran bir etiket nesnesinin nesne adı ne zaman kullanılır . <rev>^
<rev>^1
<rev>^0
<rev>
bu yüzden çağırmadan önce git reset
, HEAD^
(veya HEAD^1
) b7e7176 ve HEAD^2
c7256de idi, yani birleştirme işleminin sırasıyla birinci ve ikinci ebeveynleri.
Dikkatli olun git reset --hard
çünkü işi yok edebilir.