Yalnızca belirli bir daldaki değişiklikleri görmek için git günlüğünü nasıl çalıştırabilirim?


395

Uzak / ana dalı izleyen yerel bir şubem var. Çalıştırdıktan sonra git-pullve git-loggünlük uzaktan izleme dalı yanı sıra güncel dalında tüm kaydedilmesini gösterecektir. Ancak, uzak dalda çok fazla değişiklik yapıldığı için, yalnızca geçerli yerel dalda yapılan taahhütleri görmem gerekiyor.

Git komutu yalnızca belirli bir dal için taahhütleri göstermek için kullanılır?

Notlar:

Yapılandırma bilgileri:

[branch "my-branch"]
  remote = origin
  merge = refs/heads/master

Yanıtlar:


526

Şube kapalı yaratıldı varsayarsak master, ardından ise dalında (olduğuna şube teslim, sen var):

git cherry -v master

veya

git log master..

Dalda değilseniz, "git log" komutuna dal adını şu şekilde ekleyebilirsiniz:

git log master..branchname

Şubeniz yapılmışsa origin/master, origin/masteryerine söyleyin master.


100
Mükemmel! git log --no-merges master..tam da ihtiyacım olan şeydi.
Yaşam Yolu

3
@HighwayofLife: --no-mergesyalnızca belirli bir daldan taahhütleri gösteriyor gibi görünebilir, ancak gerçekten sadece bir birleştirme ile sonuçlanmayan taahhütleri gösteriyor
rynmrtn

5
Üst dalı yazmamı / tanımamı gerektirmeyen bunu yapmanın bir yolu ne olacak? :)
YER ALAN

1
Oran-of-the değişimin bir fikir edinmek için, ben göreceli yaş takip ilk gösterilen yazarın adını taşıyan bir tek satırlık günlüğü biçimini üreten aşağıdaki sihir :), kullanılan işlemek:git log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Nuh Sussman

2
okumamalısın? git log master .. <şubeniz> --oneline --no-merges
Alex Nolasco

104

kullanın:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

Sadece hedef dal için (elbette --graf, --abbrev-taahhüt - dekorasyon daha parlatma).

Anahtar seçenek --first-parent: "Birleştirme taahhüdünü gördüğünüzde yalnızca ilk ebeveyn taahhüdünü izleyin" ( https://git-scm.com/docs/git-log )

Taahhüt çatallarının görüntülenmesini önler.


25
--first-parent <branch_name>seçenek. İşler !
parasrish

3
Şube-adı nerede, tarihini sadece görmek istediğim şube nerede? Sadece 3 değişikliğe sahip bir dalda bu bana yüzlerce şey gösteriyor.
Ed Randall

1
--first-parent <branch_name>benim için de çalıştı! Sonunda bir takma ad buldum git log --first-parent $current_branch_name --no-merges. @EdRandall'a yanıt olarak, şubedeki + şubelerin dallandığı yerden gelen taahhütleri gösterecektir. Örneğin:
rachel

2
Hata! Yakında gönderdim, işte örnek: Ustada A ve B taahhütleriniz var. Sen şube new_featureustadan. Buna C ve D komutları eklersiniz. Sonra master'a E ve F eklersiniz. Daha sonra master'ı ile birleştirirsiniz new_feature. Kullanılması git logüzerine new_feature, siz "birleştirme ustası", F, E, D, C, A, B kullanma göreceksiniz git log --first-parent new_feature --no-merges, D, C, A, B göreceksiniz
Rachel

24

Yalnızca belirli bir dalda sizin tarafınızdan yapılan taahhütleri istiyorsanız, aşağıdaki komutu kullanın.

git log branch_name --author='Dyaniyal'

13

Buna benzer olduğunu düşündüğüm sorun, ustanın tarihin yararlı olması için branşımın çok ötesinde olmasıydı. (Şube noktasına gitmek çok uzun sürecektir.)

Biraz deneme yanılma sonrasında bu bana kabaca istediğimi verdi:

git log --graph --decorate --oneline --all ^master^!

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.