リポジトリをクローンし、ファイルの変更を開始したとしましょう。ローカルでコミットされていない変更がある場合は、git diff test.txt
のようにdiffを実行すると、現在のローカルHEADと変更されたコミットされていないファイルの変更の違いがわかります。これらの変更をコミットすると、git diff master Origin/master
を使用して元のリポジトリと比較できます
しかし、サーバー上の元のリポジトリとローカルの変更を比較する方法はありますかbeforeローカルでコミットしますか? git diff --cached master Origin/master
のさまざまな組み合わせを試しましたが、うまくいきませんでした。
リモートリポジトリがgit fetch
を介してキャッシュされていることを考えると、これらのコミットと比較することができるはずです。以下を試してください:
$ git fetch Origin
$ git diff Origin/master
私はそれが尋ねられた正確な質問に対する答えではないことを知っていますが、この質問がブランチとローカルのコミットされていないファイルのfileを探しているのを見つけました
構文:
git diff <commit-ish>:./ -- <path>
例:
git diff Origin/master:./ -- README.md
git diff HEAD^:./ -- README.md
git diff stash@{0}:./ -- README.md
git diff 1A2B3C4D:./ -- README.md
(ファイル名を2回入力する必要がない方法について、Eric Boehsに感謝します)
既存のファイルに対する段階的でない(追加されていない)変更を表示するには
git diff
これは新しいファイルを追跡しないことに注意してください。コミットされていない段階的な変更を確認するには
git diff --cached
ファイルを視覚的に比較する場合は、次を使用できます。
git difftool
変更されたファイルごとにdiffアプリが自動的に起動します。
PS:diffアプリを設定しなかった場合、以下の例のように設定できます(私は Winmerge を使用しています):
git config --global merge.tool winmerge
git config --replace --global mergetool.winmerge.cmd "\"C:\Program Files (x86)\WinMerge\WinMergeU.exe\" -e -u -dl \"Base\" -dr \"Mine\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
git config --global mergetool.Prompt false