Gitのコミットされていない変更と一部のGit差分を詳細に表示する方法


202

Gitでコミットされていない変更を表示するにはどうすればよいですか?

私はSTFWしました、そしてこれらのコマンドは機能していません:

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git status
On branch teyan/psservice
Your branch is up-to-date with 'origin/teyan/psservice'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   psservice.c
        modified:   psservice.vcxproj.filters


teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff

teyan@TEYAN-THINK MINGW64 /d/nano/repos/PSTools/psservice (teyan/psservice)
$ git diff master
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

回答:


370

Gitでコミットされていない変更を表示する方法

あなたが探しているコマンドはgit diffです。

git diff -コミット、コミット、作業ツリーなどの変更を表示


使用できるいくつかのオプションを次に示します

git diff(パラメータなし)
作業ディレクトリとインデックスの違いを出力します。

git diff --cachedインデックスとHEAD(現在のコミット)の
違いを出力します

git diff HEAD作業ディレクトリとHEADの
違いを出力します。

git diff --name-only
変更されたファイルの名前のみを表示します。

git diff --name-status
変更されたファイルの名前とステータス のみを表示します。

git diff --color-words
行ごとではなく、単語ごとの相違。

の出力例を次に示しますgit diff --color-words

ここに画像の説明を入力してください


ここに画像の説明を入力してください


2
最後にコロンプロンプトが表示されたら、gitが最初のページを表示したことを意味します-Enterを押して、他の変更をステップ実行します(catファイルで実行できるように| more)
NULLポインター

42

変更はすでに(おそらくを実行してgit add)ステージングしているため、それらの差分を取得するには、次のコマンドを実行する必要があります。

git diff --cached

(プレーンgit diffはステージングされていない変更のみを表示します。)

例えば: キャッシュされたgit diffの使用例


0

私にとって、機能したのは

git diff HEAD

ステージングされたファイルを含め、ステージングされたファイルgit diff --cachedのみを表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.