15

如何区分我的工作文件版本与远程存储库中的某个先前版本?

说,我今天拉,对我的本地副本执行 6 到 8 次提交,然后想查看我的最新工作版本(给定文件的)与远程或任何其他版本的最新版本之间的差异。

4

4 回答 4

12

如果您正在谈论远程分支,例如origin/master,您可以使用~and^来引用相对于分支的祖先提交,就像您可以使用本地分支一样:

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

如果你想将你当前的工作目录与 5th 最近的提交进行比较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/master,并且也在我的工作区中,已提交到本地分支my-branch

path/to/file.txt我的工作区中提交的远程分支的最新版本和(可能未提交的)版本之间的区别:

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

path/to/file.txt三个提交前提交的远程分支的版本与我的工作区中的(可能未提交的)版本之间的差异:

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 diff FETCH_HEAD #diff your working dir version of my_file vs the remote tip

如同
git diff 遥控器/来源/分支

但是您必须先执行 git-fetch ,否则您将无法在本地使用远程提交来进行比较

于 2013-10-23T11:04:19.393 回答