我如何区分一个文件,比如pom.xml,从主分支到Git中的任意旧版本?
当前回答
git diff -w HEAD origin/master path/to/file
其他回答
git diff master~20 -- pom.xml
如果你不在主分支也有效。
假设你想要区分位于firmware/src/中的interrupt.c文件
工作区域(尚未提交或暂存)和最新提交之间的Difftool:
这是一个大石头头海洛因
or
Git difftool head *interrupt.c
注意:在最后一个提交的版本之前,要区分x个版本,将“head”替换为head~x。例如,将“head”替换为“head~2”,以区分工作区域和最新提交之前的两个版本
两个特定提交版本之间的Difftool:
首先使用next行获取要比较的版本的id
git 日志 --oneline
你会得到一个包含你提交的所有版本的列表。选择两个,复制他们的id。
在{}中输入id:
通用电气电气
or
git difftool (2fae9e6,a21dd00} * interp .c
注意:如果文件之间没有差异,什么都不会打开。你只会在git bash中得到一个空行
git diff <revision> <path>
例如:
git diff b0d14a4 foobar.txt
如果commit都不是你的HEAD,那么bash的大括号扩展非常有用,特别是如果你的文件名很长,比如上面的例子:
git diff master~20:pom.xml master:pom.xml
将成为
git diff {master~20,master}:pom.xml
更多关于bash的大括号展开。
如果你想查看单个文件的最后一次提交之间的差异,你可以这样做:
git log -p -1 filename
这将为您提供文件在git中的差异,不是比较您的本地文件。
推荐文章
- 如何在Visual Studio中删除未推送的外向提交?
- Git在两个不同的文件之间的差异
- 我如何使用vimdiff来解决git合并冲突?
- 如何将更改提交到另一个预先存在的分支
- 为什么使用'git rm'来删除文件而不是'rm'?
- 我如何安装imagemagick与自制?
- 致命:git-write-tree:错误构建树
- Git克隆远程存储库的特定版本
- git隐藏的意图用例是什么?
- 从远程Git存储库检索特定的提交
- 如何配置git bash命令行补全?
- 我如何迫使git拉覆盖每一个拉上的一切?
- 撤销“git add <dir>”?
- 是否可以在不先签出整个存储库的情况下进行稀疏签出?
- 如何移除SSH密钥?