2012-08-01 7 views
6

私はコードレビューを実行するためにコマンドラインgitとKaleidoscopeを使用しています。私は別のものにブランチをマージして入力するとgit-integrated Kaleidoscopeでコミットしようとしているすべてのファイルを表示するにはどうすればいいですか?

git difftool 

万華鏡は「コミットの上演ではない」されていると「マージされていないパス」を表示しませんか「コミットするように変更」変更が表示されます。

コマンドラインには残りのものが表示されます。

理由は何ですか?

これは私の〜/ .gitconfig

[user] 
     name = Dirty Henry 
     email = [email protected] 
[core] 
     excludesfile = /Users/dirty/.gitignore_global 
     editor = mate 
[difftool "Kaleidoscope"] 
     cmd = ksdiff-wrapper git \"$LOCAL\" \"$REMOTE\" 
[mergetool "sourcetree"] 
     cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" 
     trustExitCode = true 
[diff] 
     tool = Kaleidoscope 
[credential] 
     helper = osxkeychain 
[difftool] 
     prompt = false 

答えて

14

短い答え:あなたは、コマンドラインで入力することにしたいことはgit difftool HEAD、ないgit difftoolです。

長い答え:これは正常なgitの動作です。何が起きているのか分からないと、ちょっとイライラします。コマンドラインdiffが働いている理由あなたが期待するように私にはわからないんだけど、git diffgit difftool両方がGitのmanページあたりのと同様に実行する必要があります。

のgit diffの[--options] [ - ] [<path> ...] このフォームは、索引(次のコミットのステージング領域)に関連して行った変更を表示するためのものです。言い換えれば、 の違いは、gitにさらにインデックスを追加するように指示することができますが、まだ表示されていない点です。これらの変更をgit-add(1)を使って行うことができます。

のでgit diffgit difftoolあなただけunstaged変化を示すべきです。

あなたが git diff --cachedを使用する必要がありますあなたは 変更を上演見たい場合は

、代わりにgit difftool --cached

のgit diffの[--options] --cached [<コミット>] [ - ] [<パス> ...] このフォームは、<コミット>という名前に関連して、次のコミットのためにステージングした変更を表示するためのものです。通常、 は最新のコミットと比較したいので、<コミット>を指定しないと、デフォルトはHEADになります。 HEADが存在しない場合、 (例:未分枝)および<コミット>が指定されていない場合は、すべての段階的な変更が表示されます。 --stagedは--cachedの同義語です。

あなたは両方が変更を上演してunstagedを見たい場合は最後に、あなたは三番目の形式、git diff HEADまたはgit difftool HEAD使用:

のgit diffは[--options] < > [コミット - ] [<パス> ...]このフォームは、 という名前の作業ツリー内の変更を、 <というコミット>と比較して表示することです。 HEADを使用して最新のコミットと比較するか、 ブランチ名を使用して、別のブランチの先端と比較することができます。

+0

素晴らしい。ありがとう! –

1
git difftool --staged 

はまさにそれをあなたを与えるだろう。

stagedcachedと同義ですが、私はstagedが覚えやすくなっています。

関連する問題