tek bir düzeltmenin git günlüğü


181

Bir taahhüdüm var c. Ben o kesin taahhüt c + metainformation değişiklik setini almak istiyorum ve başka kimse yok. Bunu yapmaktan daha basit bir yol git log -p c^..cvar mı?

Yanıtlar:



60

Michal Trybus'un cevabı basitlik için en iyisidir. Ancak çıktıdaki farkları istemiyorsanız, her zaman aşağıdaki gibi bir şey yapabilirsiniz:

git log -1 -U c

Bu size kayıt kaydını verecektir ve otomasyon amaçlarınız için tüm git kayıt seçenekleri üzerinde tam kontrole sahip olacaksınız. Örneğin, değişiklik setini istediğinizi söylediniz. Bunu gerçekleştirmenin en insanca okunabilir yolu:

git log --name-status --diff-filter="[A|C|D|M|R|T]" -1 -U c

Veya 1.8.X sürümünden daha büyük bir git sürümü kullanıyorsanız:

git log --name-status --diff-filter="ACDMRT" -1 -U c

Bu size aşağıdakine benzer sonuçlar verecektir:

commit {c}
Author: zedoo <zedoo@stackoverflow.com>
Date: Thu Aug 2 {time-stamp}

   {short description}
D    zedoo/foo.py
A    zedoo/bar.py

Tabii ki uygun gördüğünüz olayları filtreleyebilir ve burada iyi belgelenmiş geleneksel git-log komutlarıyla dönüşü istediğiniz gibi biçimlendirebilirsiniz .


14
Eğer fark istemiyorsanız, yapın git show --name-only <sha1>!
dbn

16
Farkı istemiyorsanız, kullanın git show -s <commit>.
moeffju

3
Ne yapar -1? Nerede belgeleniyor?
alex

1
@alex git help log"İşlemleri Sınırlama" bölümündeki çıktıya bakın. Veya bkz. Git-scm.com/book/en/v2/… -<number> , çıkarılacak taahhüt sayısını sınırlandırır.
LarsH


0

Taahhüt açıklamasına göre değişikliği filtrelemek için kullanabilirsiniz:

git log --grep='part_of_description' -p

burada git log --grep='part_of_description''part_of_description' içeren taahhütleri seçin ve her bir taahhüdün değişiklik kümesini -pgösterin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.