如何区分我的工作文件版本与远程存储库中的某个先前版本?
说,我今天拉,对我的本地副本执行 6 到 8 次提交,然后想查看我的最新工作版本(给定文件的)与远程或任何其他版本的最新版本之间的差异。
如果您正在谈论远程分支,例如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
要查看您的“最新工作版本”(我将其作为您的工作副本)之间的差异,请使用:
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 ...
来启动视觉差异工具(假设您的机器上存在一个)。
假设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 diff FETCH_HEAD #diff your working dir version of my_file vs the remote tip 如同 git diff 遥控器/来源/分支
但是您必须先执行 git-fetch ,否则您将无法在本地使用远程提交来进行比较