Git'i kullanarak mevcut ve son sürüm arasındaki farkı nasıl bulabilirsiniz?
git diff last version:HEAD
Git'i kullanarak mevcut ve son sürüm arasındaki farkı nasıl bulabilirsiniz?
git diff last version:HEAD
Yanıtlar:
"Son versiyon" un anlamını gerçekten anlamıyorum.
Önceki komuta HEAD ^ ile erişilebildiğinden, şöyle bir şey aradığınızı düşünüyorum:
git diff HEAD^ HEAD
Git 1.8.5 itibarıyla @, bir takma addır HEAD, bu nedenle şunları kullanabilirsiniz:
git diff @~..@
Aşağıdakiler de işe yarayacaktır:
git show
Eğer kafa ve herhangi bir taahhüt arasındaki farkı bilmek istiyorsanız:
git diff commit_id HEAD
Ve bu görsel fark aracınızı başlatır (yapılandırılmışsa):
git difftool HEAD^ HEAD
HEAD ile karşılaştırma varsayılan olduğundan ( Orient tarafından belirtildiği gibi) atlayabilirsiniz :
git diff @^
git diff HEAD^
git diff commit_id
~karakterin yerine karakterin kullanılması gerektiğini açıklıyor ^.@, bir takma addır HEAD. Beri ~ve ^geri taahhüt tek giderken aynı, ben bulmak git diff @~..@yazmak için çok daha kolay.
git showhala daha kolaydır, çünkü @~..@gösterilecek varsayılan şey budur.
git showyalnızca taahhüt mesajını yazdırır, en azından Git 2.5.4'te (Apple Git-61) belirli değişikliklerin bir farkını çıkarmaz, bu nedenle aslında OP'nin sorusuna bir cevap olmaz.
git showvarsa yani HEADbir birleştirme birleştirme herhangi bir değişiklik kendisi olmayabilir taahhüt beri beklediğiniz almazsınız işlemek. git diff HEAD^ HEADsürümler arasındaki gerçek değişiklikleri gösterecektir
"Geçerli sürüm" ün çalışma dizini ( HEADtaahhüt edilmemiş değişiklikler) ve "son sürüm" (geçerli dal için son yapılan değişiklikler) olduğunu varsayarsak ,
git diff HEAD
Aşağıdakiler için kredi kullanıcıya gider Cerran.
Ve -aişlediğinizde hazırlama alanını her zaman atlarsanız, kullanabilirsiniz git diff.
özet
git diff işaretlenmemiş değişiklikleri gösterir.git diff --cached aşamalı değişiklikleri gösterir.git diff HEAD tüm değişiklikleri gösterir (hem aşamalı hem de yazdırılmamış).Kaynak: git-diff (1) Kılavuz Sayfası - Cerran
-ataahhütte bulunduğunuzda her zaman hazırlama alanını atlarsanız , o zaman kullanabilirsiniz git diff. <1> değişmemiş değişiklikleri git diffgösterir . <2> aşamalı değişiklikleri gösterir . <3> tüm değişiklikleri gösterir (hem aşamalı hem de etiketsiz). Kaynak: git-diff (1) Kılavuz Sayfasıgit diff --cachedgit diff HEAD
Amalloy tarafından yapılan bir yorumda belirtildiği gibi , "mevcut ve son sürümler" ile son işlem ve ondan önceki işlem anlamına gelirseniz,
git show
git show HEAD~1son-ama-one taahhüdünü ve git show HEAD~2diğerlerini göstermek için kullanın . Üzerinden sadece tek bir dosya göster git show HEAD~2 my_file.
Son fakat bir taahhüt ve son taahhüt arasındaki fark (artı varsa mevcut durum):
git diff HEAD~
ve hatta (yazması daha kolay)
git diff @~
nerede @için synonim olan HEADcari şube ve ~araçlarının "Bana bahsedilen revizyonu ebeveyn vermek".
git diff HEAD^(eşdeğer HEAD~formdan ziyade ). Benim gibi bir "eski git" için hatırlamak biraz daha kolay ;-)
~ve @ortalama.
diff HEAD^ HEADolmalıdır git diff @^!. Bkz git-scm.com/docs/gitrevisions içinr1^!
Eklediyseniz cachedancak henüz işlemediyseniz bayrağı kullanın :
git diff --cached --color
Öncelikle git logdepo günlüklerini listelemek için " " kullanın.
Şimdi, iki taahhütle ilgili iki taahhüt kimliğini seçin. Farkları görmek istersiniz ( örnek - En yüksek taahhüt ve bazı eski taahhütler (mevcut sürüm ve bazı eski sürüm beklentinize göre) ).
Sonra, şunu kullanın:
git diff <commit_id1> <commit_id2>
veya
git difftool <commit_id1> <commit_id2>
Üst taahhüt HEAD tarafından işaret edilirse, böyle bir şey yapabilirsiniz:
commit1 -> HEAD
commit2 -> HEAD~1
commit3 -> HEAD~2
Birinci ve ikinci taahhüt arasındaki fark:
git diff HEAD~1 HEAD
Birinci ve üçüncü taahhüt arasındaki fark:
git diff HEAD~2 HEAD
İkinci ve üçüncü taahhüt arasındaki fark:
git diff HEAD~2 HEAD~1
Ve bunun gibi...
Kullandığım Bitbucket ile Eclipse Eclipse ile IDE Eğit eklentisi yüklü değil.
Geçmişinin herhangi bir sürümünden ( SVN gibi ) bir dosyayı karşılaştırırım .
Menü Proje Gezgini → Dosya → sağ tıklayın → Ekip → Geçmişte göster .
Bu, dosyadaki tüm değişikliklerin geçmişini getirir. Şimdi Ctrltıklayın ve iki sürümü seçin → "Birbiriyle karşılaştırın" .
Bu aynı zamanda etiketler için de işe yarayacaktır (tüm değişiklikleri görmeniz gerekiyorsa aşağıdaki 'uniq'i ve diğer parçaları kaldırın):
git diff v1.58 HEAD
Aşağıdakiler aynıdır ve bu, monolitik bir havuzdaki mikro hizmetler için sürekli entegrasyon (CI) için yararlı olabilir :
git diff v1.58 HEAD --name-only | sort -u | awk 'BEGIN {FS="/"} {print $1}' | uniq
<Folder Name>
(Kredi - https://dzone.com/articles/build-test-and-deploy-apps-independently-from-a-mo )