2016-12-20 16 views
0

同じファイルのstagedunstagedバージョンの違いを表示する方法はありますか?例えばdifftoolを使用して同じファイルのステージングされたバージョンとステージングされていないバージョンの違い

Changes to be committed: 

    modified: conf/application.conf 

Changes not staged for commit: 
    (use "git add/rm <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

    modified: conf/application.conf 

私は変更を上演し、その後、私はそれをステージングせずに、再度ファイルを変更する場合に発生します。私はdiff/difftoolコマンドを使用する必要があるため

EDIT

git status -vvコマンドは、十分ではありません。実際には、あまりにも多くのファイルに変更が多すぎるため、すべてをスクロールするのは効率的ではないからです。しかしdiff/difftool私が興味のあるファイルを指定することができます。

+0

それは同じファイルです。 – Maroun

+0

@MarounMarounはい、それがポイントです。 Gitはファイル自体ではなく、ファイルの変更に集中します。この質問を参照してください:https://stackoverflow.com/questions/24837841/git-can-a-file-be-both-staged-and-unstaged-for-commit – DrKaoliN

答えて

8

git diffは、あなたの作業領域とインデックスの違いを表示します。 我々は通常にチェックされているものを対ワークスペースの変更を確認するためにgit diffを使用するので、これは明らかに思えないかもしれません

(上演ファイルが住んでいる場所インデックスがある)。しかし、技術的にgit diffインデックス対ワークスペースが表示され、あなたの場合インデックスに変更を加えなかった場合、インデックスはあなたがチェックアウトしたものと一致します。

  • レポ対ワークスペースを参照するには:インデックス対ワークスペースを参照してくださいgit diff --cached
  • :レポ対インデックスを参照してくださいgit diff HEAD
  • git diff
+0

ありがとう!それは私が探していた答えです。 – DrKaoliN

0

git status -vvコマンドを実行すると、ファイルのテキストの変更が表示されます。 docを参照してください。

+0

これは私の質問に答えることはありません。 – DrKaoliN

+0

あなたは@DrKaoliNを精巧にすることができますか、私は誤解しているかもしれません。このコマンドを実行すると、あなたがそれを実行してから起こった 'conf/application.conf'に対するすべての変更が表示されます。これは 'conf/application.conf'の段階的バージョンと舞台裏バージョンの違いを示すのと同じことではありませんか? –

+0

'diff'や' difftool'コマンドを使う必要があるので、特定のファイルに対してこれらの違いを見ることができるように、特定のコマンドは役に立ちません。つまり、 'git diff conf/application.conf 'git status -vv conf/application.conf'と入力してもコンソールのすべての変更が表示されます。実際には1つのファイルを変更することは決してないので、数十のファイルがあり、数十の修正されたコード行があり、必要なものを見つけるために半分の時間をスクロールするのは効率的ではありません。しかし、技術的には、あなたの答えは正しいです。 – DrKaoliN

関連する問題