Bazen bir taahhütte bulunmak üzereyken, son işlemden bu yana neyin değiştiğini tam olarak hatırlayamıyorum. Kodun mevcut durumu ile son commit arasındaki farkı nasıl görebilirim?
Bazen bir taahhütte bulunmak üzereyken, son işlemden bu yana neyin değiştiğini tam olarak hatırlayamıyorum. Kodun mevcut durumu ile son commit arasındaki farkı nasıl görebilirim?
Yanıtlar:
Henüz dizine dosya eklemediyseniz (ile git add),
git diff
Bu, çalışma ağacınız ile dizininiz arasındaki farkı gösterecektir.
Dizine dosya eklediyseniz, dizin ve son işleme (HEAD) arasındaki farkları göstermek için bunu yapmanız gerekir.
git diff --cached
Son olarak, en son commit ( HEAD) ile karşılaştırıldığında çalışma ağacında yapılan değişiklikleri görmek istiyorsanız, şunları yapabilirsiniz (Carlos'un işaret ettiği gibi)
git diff HEAD
Bu değişiklikler kombinasyonu vardır git diffve git diff --cached.
git diffBir diff mesajında indeksin bir durumu ve bir önceki commit mümkün mü ?
git diff --cached HEAD^:)
Henüz bir kesinleştirme yaptıysanız veya son işlemede mevcut duruma kıyasla neyin değiştiğini görmek istiyorsanız (temiz bir çalışma ağacınız olduğunu varsayarak) şunları kullanabilirsiniz:
git diff HEAD^
Bu, HEAD'i hemen önceki kaydetme ile karşılaştırır. Bir de yapabilirdi
git diff HEAD^^
2 işlemden önceki oyun durumuyla karşılaştırmak için. Mevcut durum ile belirli bir kesinleştirme arasındaki farkı görmek için şunları yapmanız yeterlidir:
git diff b6af6qc
b6af6qcBir commit hash örneği nerede .
HEAD^taahhüt olduğunu önce en son taahhüt.
Git'ten, kısaltması olan geçerli / son yürütmeyi farklılaştırmasını istersiniz HEAD.
Böylece çalışma git diff HEADağacının mevcut durumunu mevcut commit ile karşılaştıracağız.
bu aynı zamanda farkı ve hangi dosyaların değiştirildiğini / değiştirildiğini de gösterir.
$ git status
Dizin dosyası ile geçerli HEAD yürütmesi arasında farklılıklar olan yolları, çalışma ağacı ile dizin dosyası arasında farklılıklar olan yolları ve çalışma ağacında git tarafından izlenmeyen (ve gitignore tarafından yok sayılmayan yolları) görüntüler (5) ). Birincisi, git commit'i çalıştırarak yapacağınız şey; ikinci ve üçüncüsü, git commit'i çalıştırmadan önce git add çalıştırarak gerçekleştirebileceğiniz şeylerdir.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
Bu benim için de geçerli:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
Bu genellikle doğrusal bir tarih için işe yarar. Birleştirme taahhütleri de varsa, bu daha karmaşık hale gelebilir. Güzel ve eksiksiz bir açıklama için bu belgeye bakmanızı tavsiye ederim, özellikle ağaç çizimi örneğini işlemek için:
git diffÇalışma ağacını HEAD ile değil indeksle karşılaştırır.