比较当前文件版本和以前的远程存储库



如何将我的工作文件版本与远程仓库中的某些先前版本进行比较?

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

要查看您的"最新工作版本"之间的差异(我会将其作为您的工作副本),请使用:

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 ...启动可视比较工具(假设计算机上存在一个)。

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

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

如果要将当前工作目录与 origin/master 上的第 5 个最新提交进行比较,则可以省略第一个参数:

git diff origin/master~4

假设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
git fetch; #this 会将远程分支提交附加到本地树Git 差异 FETCH_HEAD #diff您的工作目录版本的 my_file 与远程提示同git diff remotes/origin/branch

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

最新更新