git-コミットする前の現在の変更の差分


106

gitリポジトリのいくつかのファイルを変更しましたが、まだコミットしていません。

を呼び出すだけで、変更のリストを取得できますgit status。しかし、ファイル名に加えて、変更したまたはコンテンツのリストを取得するにはどうすればよいですか?

最初はgit diffの使用を考えましたが、すでにコミットされた変更を比較する場合にのみ役立つようです。

通常はを実行しますmeld .が、この場合はsshを介して外部サーバーに接続しています。

回答:


153

git diffデフォルトでは、作業ディレクトリインデックス(次のコミットのステージング領域)の違いを示します。

あなたは既に(追加した場合は、段階的に)変更ステージング領域をgit diff --staged仕事をしていません。 ステージング領域は、次のコミットがによって形成されるデータgit commitです。

Git初心者のためのPS Good Reading(IMO):


ステージングは​​、まだ追加されていないファイルにのみ適用されませんか?cachedフラグを使用する必要があると思った。
pbond 2012

4
@peterbond man git-diff言う--staged is a synonym of --cached
ミーシャArefiev

2
@peterbond技術的に段階的とは、まだコミットされていないステージング領域に追加されることを意味します。編集でそれを明確にしました。
Mischa Arefiev

1
@Mischa ドキュメントはのためのデフォルトの動作はと言うgit diff作業ディレクトリとの間の差を計算することであるインデックスを、ないHEAD
アクセル

パラメータを指定せずにgit diffを呼び出すことはありませんでした。ありがとう!
kikito

10

私がそのような場合に使用するのは:

git diff HEAD *

これにより、前回のコミット以降の変更が表示されます。どういうわけかそれは

git diff .

または

git diff

以前にgit add編集したファイルの変更を表示するには、stagedフラグを使用します。

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