2012-08-07 15 views

答えて

3

あなたはgit logにワイルドカード文字を使用できます。exec.jsと呼ばれる任意のファイルが変更されたとき

git log -- *exec.js 

はあなたにすべてのログメッセージを与えるだろう。

あなたは(A言う)の削除がコミット見つけたら、

git checkout A -- *exec.js 

これは、あなたexec.jsの最後のバージョンをもたらすことができます。

あなたがexec.jsの完全な履歴を表示したい場合は、gitkを使用することができます。

gitk -- *exec.js 

これは再びあなたにすべての変更が表示されます。 1つのコミットに特に興味がある場合は、gitkダイアログのファイルを右クリックし、外部差分ツールを選択します。これにより、パッチ以外にもフルファイルの外部差分ツールが開きます。

+0

また、** git diff * revision-before-delete * - *ファイルパス***を使ってファイルの完全な内容を見ることもできます。 (各行はファイルから削除されているので、各行の前に " - "が付きます)。 –

1

あなたが使用してログ履歴内の特定のファイルを検索することができます -

git log -- filepath 
git log -n 1 -- filepath 
を - あなたはファイルパス、あなたが使用することができている場合は、ファイルパス、その後

git log --diff-filter=D --summary | grep filename 

を持っていない場合は

を入手して、リビジョンを入手したら、その特定のリビジョンをチェックアウトしてそのファイルを入手することができます

+0

あなたが質問を読んでいない、あなたがやりましたか?彼らは彼らが**その道を知らないと言った**。これはパスフィルターです。それにはパスが必要です。それは役に立たない。 –

+0

パスがわからず、ファイルが削除されたときにコードがありませんでした。 – user429400

+0

@JanHudecはい私です。しかしもちろん、彼はgitリポジトリのパスを持っている必要があります。user429400そうですか? –

0

削除されたファイルのフルネームとその内容を1つまたは2つのコマンドで簡単にリストする方法はありません。しかし、ここであなたが始めるためにエイリアスです:

$ git config --global alias.find-deleted-file '!f() { for c in `git rev-list HEAD`; do for fnm in `git diff-tree -r --diff-filter=D --name-only $c | grep -P ".*/$1"` ; do echo "$c $fnm" ; git show $c^:$fnm ; echo "" ; done ; done ; } ; f' 

これは、提供されたファイル名のパターン(grep -Pが提供するパターンマッチング)で削除されたファイルを検索しますGitのfind-deleted-fileエイリアス(diff-treeを使用して)利用できるようになりますファイルが削除されたコミット、ファイルのフルネーム、および削除前の内容を表示します。

$ git log --all --graph --decorate --oneline --name-only 
* 3f3cba1 (HEAD, master) I 
I 
* 4c8b369 H 
E/H 
* a008343 rm F 
E/F 
* 525a127 FG 
E/F 
E/G 
* 3a10f93 initial 
A 
B 
C 
D 
E/F 

あなたが使用して削除されたFファイルを検索します:次の例リポジトリの履歴を使用して

$ git find-deleted-file F 
a008343eec91fe917078209d44ae93ee72fc5acb E/F 
F 
関連する問題