我有一个仓库被检出到某个(未知的)标签上(目前没有在任何分支上)。并且有一些本地修改未保存到索引中。当我在文件上运行git diff时,它给我一些更改,但我不确定它们是关于哪个提交的。我想获取给定分支的最新差异。是否有一个git diff命令来实现这个功能?就像这样:
git diff myLocalFile myRemoteBranch
要使用diff
指定特定的文件,可以在命令末尾使用--
。
此外,您可以使用HEAD
指针来指定当前位置,而不必指定标签。
示例:
git diff HEAD..myRemoteBranch -- relative/path/to/myLocalFile
git diff myRemoteBranch -- relative/path/to/myLocalFile
remote
来引用那个分支,例如:git fetch # retrieve latest from server
git diff origin/myRemoteBranch -- relative/path/to/myLocalFile
Git内置了一个工具来完成这个任务:
git diff-index myRemoteBranch myLocalFile
默认情况下,它以“原始”格式输出,使用-p
可以获得与git diff
默认相同的补丁:
git diff-index -p myRemoteBranch myLocalFile
commit
,才能查看你的更改与另一个分支的差异。 我建议从当前位置创建一个新分支(get checkout -b myBranch
),暂存(add
),并提交(commit
),然后使用diff
命令查看更改。 - Jonathan.Brink