2012-03-22 4 views
8

に、私は深く私のgitツリーでダウンしたファイルがあります:gitのログ

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

を私は、全体のパスを入力しなくても、そのアクティビティのログを取得したいのですが。基本的に私はこの出力をしたい:を入力することなく、この出力:

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

...が必要です。私は物事の多くを試みたが、それらのどれも働いた:

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

gitのログ - \ */Expression.java私のWindows 7のコマンドシェルgitのログ "*/Expression.java" 作品では、奇妙な –

+0

を動作するはずですが、単一引用符が動作しません。 – yoyo

答えて

3

をワイルドカードを使用して、何のエスケープや引用符は必要ありません:

のWindows 7でテスト
git log -- */Expression.java 

cmdシェルとgit bashで。

シェルに応じて、引用符が必要な場合があります。一重引用符が機能しない場合は、二重引用符で囲みます。

+0

これは私のために今働くことを確認しました。私はこの時点で利用可能なgitのいくつかのバージョンに存在するバグの犠牲者であったようです。 http://git-blame.blogspot.com/2012/01/git-1776-1784-and-179-rc2.htmlに記載されている修正はhttps://github.com/git/git/commitです/ 5c8eeb8。 1.7.7.6に最初に現れました。質問をする前にちょうど2カ月前にリリースされました。 –

3

使用xargs

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

これは、ファイルがローカルに存在することを前提としています。削除されたファイルをログに記録する場合はどうすればよいですか? – yoyo

0

git 2.8(2016年3月)の場合、ワイルドカードはpathspecまたはrefspecとしてより強固にサポートされています。

commit aac4fac,,commit 1cc777d()を参照してください。
commit e6a6a76Junio C Hamano -- gitster --によって合併、2016年2月24日)

ことを意味する:検索時

git log -- "*.t" 
# or 
git log "*.t" 
  • ワイルドカード(refspecsで動作:pathspecsで動作wilcard

    • 'b'で始まるコミットメッセージの場合):

      git log "HEAD^{/b.*}" -- 
      # or 
      git log "HEAD^{/b.*} 
      
  • 関連する問題