2012-03-22 14 views
8

içinde joker:kullanma yolu benim git ağacından aşağı derin bir dosya var git log

$ git ls-files | grep /Expression.java 
sm/src/main/java/cl/utilities/sm/Expression.java 

Bütün yolunu yazmak zorunda kalmadan kendi etkinliğin günlüğünü almak istiyorum.

$ git log --oneline -2 sm/src/main/java/cl/utilities/sm/Expression.java 
2718cdc cleaned up some warnings 
f30cf15 Added missing @Overrides 

... ama sm/src/main/java/cl/utilities/sm yazmak zorunda kalmadan: Temelde bu çıktıyı istiyorum. Ben bir sürü şey denedik, ama hiçbiri çalıştı:

$ git log -- \*/Expression.java 
$ git log -- \*Expression.java 
$ git log -- \*\*/Expression.java 
$ git log -- '*/Expression.java' 
$ git log -- '**/Expression.java' 
+4

git günlüğü - \ */Expression.java benim Windows 7 komut kabuğu git log "*/Expression.java" çalışır yılında garip –

+0

çalışmalıdır, ancak tek tırnak çalışmaz. – yoyo

cevap

3

kullanın joker:

git log -- */Expression.java 

Windows 7 üzerinde test edilmiştir cmd kabuğu ve git bash.

Kabuğunuza bağlı olarak, tırnak işaretlerine ihtiyacınız olabilir - tek tırnak işareti çalışmazsa, çift tırnak işareti deneyin.

+0

Bunun benim için şimdi çalıştığını doğruladı. Sanki bu saatlerde mevcut olan birkaç sürümde bulunan bir hatanın kurbanı gibi görünüyor. Http://git-blame.blogspot.com/2012/01/git-1776-1784-and-179-rc2.html adresinde belirtilen düzeltme, https://github.com/git/git/commit şeklindedir./5c8eeb8. İlk önce, soruyu sormadan önce birkaç ay önce 1.7.7.6'da ortaya çıktı. –

3

kullanım xargs: hiçbir kaçar veya tırnak gerekli

find . -name 'Expression.java' | xargs git log --oneline -2 
+0

Dosya yerel olarak varsayar. Silinen bir dosyayı günlüğe kaydetmek isterseniz ne yapmalısınız? – yoyo

0

Git 2.8 ile (Mart 2016), joker karakterler hem pathspec hem de refspec olarak daha fazla desteklenir.

Bkz. commit aac4fac, commit df714f8, commit 1cc777d (10 Şub 2016) tarafından Jeff King (peff). pathspecs ile çalışır wilcard

  • :

    git log -- "*.t" 
    # or 
    git log "*.t" 
    
  • joker refspecs ile çalışır (ararken
    demektir

    (commit e6a6a76 yılında Junio C Hamano -- gitster -- tarafından 24 Şubat 2016 Birleştirilmiş) 'b' ile başlayan bir taahhüt mesajı için:

    git log "HEAD^{/b.*}" -- 
    # or 
    git log "HEAD^{/b.*}