如何 git diff 本地更改到不同的分支?

a1a*_*1an 5 git diff branch

我有一个存储库签出了一些(未知)标签(当前不在任何分支上。)并且一些本地更改未签入索引。当我在文件上运行 git diff 时,它会给我一些更改,我不确定它们是哪个提交。我想将差异获取到给定分支的顶部。有 git diff 命令吗?就像是:

git diff myLocalFile myRemoteBranch
Run Code Online (Sandbox Code Playgroud)

Jon*_*ink 5

diff您可以通过--在命令末尾使用来指定特定文件。

此外,您可以使用HEAD指针来指定您当前所在的位置,而不必指定您所在的标签。

例子:

git diff HEAD..myRemoteBranch -- relative/path/to/myLocalFile
Run Code Online (Sandbox Code Playgroud)

或者,更简单地说:

git diff myRemoteBranch -- relative/path/to/myLocalFile
Run Code Online (Sandbox Code Playgroud)

另外,如果您确实想与“远程”分支进行比较,您可能应该使用remote类似的方式引用该分支:

git fetch # retrieve latest from server
git diff origin/myRemoteBranch -- relative/path/to/myLocalFile
Run Code Online (Sandbox Code Playgroud)