回答:
あなたが探していgit diff
ます。正確な状況に応じて、3つの便利な使用方法があります。
# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
ディレクトリで再帰的に動作し、パスが指定されていない場合は、すべての変更が表示されます。
git add -p
すべてのファイルを検査する代替手段です。
git diff --staged [filename]
主な答えを追加することを検討してください。これはより頻繁に必要とされる状況です。
使用git-diff
:
git diff yourfile
私にとってgit add -p
は、ステージングされていないすべての変更を確認するための最も便利な方法(およびgit開発者が意図していると思いますか?)(各ファイルの差分が表示されます)、コミットに伴う変更の適切なセットを選択します。それらのすべてをステージングし、次にを使用git commit
して、次のコミットで繰り返します。次に、さまざまなファイルで行われた場合でも、各コミットを有用または意味のある一連の変更にすることができます。また、チケットまたは同様のアクティビティごとに新しいブランチを作成し、checkout
(おそらくgit stash
、切り替える前にコミットしたくない場合は使用して)を使用してそれらを切り替えることをお勧めしますが、多くの迅速な変更を行う場合、これは面倒な場合があります。頻繁にマージすることを忘れないでください。
作業ツリーとインデックスまたはツリー間の変更、インデックスとツリー間の変更、2つのツリー間の変更、またはディスク上の2つのファイル間の変更を表示します。
ファイルではなく変更をコミットしていることを忘れないでください。
このため、git add -p
変更を追加するために私が使用しない(またはmagitで同等の)ことは非常にまれです。
さて、あなたがファイルリストを気にしたくないときの私のケース。全部見せてください。
git add
ファイルリストを使用して既に実行している場合:
$ git diff --cached $(git diff --cached --name-only)
より新しいバージョンのでは、の同義語であるもgit
使用できます。--staged
--cached
同じことは、ファイルを追加していないが--cached
オプションなしで使用できます。
$ git diff $(git diff --name-only)
「キャッシュ」オプションのGitコマンドエイリアス:
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'
git対応のテキストエディタを使用することもできます。変更された線の色、追加された線の別の色、削除された線の別の色などが表示されます。
これを行う優れたテキストエディタは、GitHubのAtom 1.0です。
[filename]
はオプションの引数を示します。)これで、*
シェルにすべてのファイルをリストさせることができるため、サブディレクトリにいる場合は、そのサブディレクトリ(リポジトリ全体ではなく)にあるものだけを取得できます。隠しファイルの変更を見逃します。