2013-03-21 18 views
8

Son ittiğim şeyi öğrenmek istiyorum, en son taahhüt ettiğim şey değil, ama itti.Git, itiraf ettiğim son şeyi buldum

Bunun için git komutu var mı?

Bağlam: Ben bir ana dalı ile benim dev_branch birleştirme önce bazı hareketin kaydedilmesini ezmek istiyorum ama zaten itilir şey rebase olamaz söylendi (bu doğru mu?).

Bu rebase'de ekleyemediğim son işlemin ne olduğunu bilmek istiyorum.

cevap

24

son size uzaktan varsayarak origin, daha sonra master dalına itti taahhüt demek durumunda:

git rev-parse origin/master 

Bu origin kökenli master dalın ucunda kimliğini taahhüt göstereceğim, Yerel deponuz olarak şu anda farkında. Bu, söz konusu işlemin başkasının taahhüdü olduğu anlamına gelebilir, bir başkası sizin yaptığınız işlemden sonra itiraf ederse ve bu şubeden bu yana fetch yayınladıysanız.

git show -p origin/master 

Bu komut, taahhüt kimliği, yazar da dahil olmak üzere size taahhüt hakkında bilgi vermek ileti oturum ve bunun ebeveyne fark (lar) taahhüt edecektir. benim favori Git ait


Bir muayene tam olarak bu tür yapmak için komutları:

git log --pretty=oneline --abbrev-commit --graph --decorate --all 

Bu taahhüt tarihin güzel bir ASCII sanat grafiğini görüntüler ve her herhangi ref gösterecektir taahhüt olduğunu hedefliyoruz. Bu şekilde, tek bir bakışta, geçmişteki dalları ve birleştirmeleri görebilir ve origin/master'un kendi master ile nerede olduğunu kolayca görebilirsiniz.

+0

wow teşekkürler cdhowie son komut harika, gerçekten yararlı! i muhtemelen ayrı Söz konusu bu sormalısınız ama ne iyi sayılır --squash birleştirme -git -i rebase -git yapmak istediğim ne , usta ile benim dev şube birleştirme, ama benim 100 var + commmits 4 söze sıkıştırılmış 4. Tarihte muhtemelen 4 anahtar nokta olduğu gibi 1, – chrispepper1989

+2

Eğer dev şube itti ve daha sonra ezmek, diğerleri sizin işinizden şube serbest olabilir gibi kötü bir fikir. Halka açıksa, onu değiştirmeyin. Eğer kamu değilse, o zaman git git -ase, tarihte tutmak istediğiniz ve onları içine almak istediğiniz hangi farklı taahhütleri seçmenize izin verecektir. 'git merge --squash 'size sadece bir taahhüt oluşturma fırsatı verecek, sonuçta kaç tane nesne istediğinize bağlı. – cdhowie