15

作業ファイルのバージョンとリモート リポジトリ内の以前のバージョンを比較するにはどうすればよいですか?

たとえば、今日プルし、ローカル コピーに対して 6 ~ 8 回のコミットを実行してから、(特定のファイルの) 最新の作業バージョンとリモートまたはその他のバージョンの最新バージョンとの差分を確認したいとします。

4

4 に答える 4

12

たとえば、リモートブランチについて話している場合は、ローカルブランチの場合と同じように、ブランチに関連する祖先コミットをorigin/master使用~して参照できます。^

# what change was introduced to origin/master in the last 4 commits?
git diff origin/master origin/master~3

現在の作業ディレクトリをの5番目の最新のコミットorigin/masterと比較する場合は、最初の引数を省略します。

git diff origin/master~4
于 2012-05-16T22:06:01.630 に答える
12

「最新の作業バージョン」(作業コピーとして使用します)との差分を表示するには、次を使用します。

git diff <remote>/<branch>

他の誰かがリモートにプッシュしたと思われる場合は、変更をフェッチする必要があります。

git fetch <remote> <branch>
git diff <remote>/<branch>

差分をファイルのみまたはディレクトリ内のすべてのファイルに制限する場合は、次を使用します。

git diff <remote>/<branch> -- /path/to/file
git diff <remote>/<branch> -- /path/to/           #all files in directory

を使用git difftool ...して、ビジュアル差分ツールを開始できます (マシンにツールが存在すると仮定します)。

于 2012-05-17T00:12:56.557 に答える
3

リモートブランチにコミットされ、私のワークスペースにもあり、ローカルブランチにコミットされてpath/to/file.txtいるファイルがあるとします。origin/mastermy-branch

path/to/file.txtコミットされたリモート ブランチの最新バージョンと、ワークスペース内の (おそらくコミットされていない) バージョンの違い:

git diff origin/master:path/to/file.txt path/to/file.txt

path/to/file.txtコミットされたリモート ブランチの 3 コミット前のバージョンと、ワークスペースの (おそらくコミットされていない) バージョンの違い:

git diff origin/master~3:path/to/file.txt path/to/file.txt

path/to/file.txtリモート ブランチにコミットされた の最新バージョンと にコミットされた最新バージョンの違いmy-branch:

git diff origin/master:path/to/file.txt my-branch:path/to/file.txt
于 2014-01-28T06:33:27.220 に答える
0
git フェッチ; #これにより、リモート ブランチのコミットがローカル ツリーにアタッチされます
git diff FETCH_HEAD #my_file の作業ディレクトリ バージョンとリモート ヒントを比較します。

と同じ
git diff リモート/オリジン/ブランチ

ただし、最初に git-fetch を実行する必要があります。そうしないと、リモートのコミットをローカルで使用して比較することができなくなります

于 2013-10-23T11:04:19.393 に答える