一尘不染

如何比较来自两个不同分支的文件

javascript

我有一个脚本在一个分支中运行良好,但在另一个分支中被破坏。我想并排查看这两个版本,看看有什么不同。有没有办法做到这一点?

需要明确的是,我不是在寻找比较工具(我使用Beyond Compare)。我正在寻找一个 Git diff 命令,它允许我将主版本与我当前的分支版本进行比较,以查看发生了什么变化。我不在合并或任何事情的中间。我只想说类似

git diff mybranch/myfile.cs master/myfile.cs

阅读 140

收藏
2022-02-14

共1个答案

一尘不染

git diff可以向您展示两次提交之间的区别:

git diff mybranch master -- myfile.cs

或者,等效地:

git diff mybranch..master -- myfile.cs

请注意,您必须指定文件的相对路径。所以如果文件在 src 目录中,你会说src/myfile.cs而不是myfile.cs.

使用后一种语法,如果任何一方都HEAD可以省略(例如,与master..比较)。master``HEAD

您可能还对mybranch...master(来自git diff文档)感兴趣:

此表单用于查看包含和直到第二个的分支上的更改<commit>,从两者的共同祖先开始<commit>git diff A...B相当于git diff $(git-merge-base A B) B

换句话说,这将给出变化的差异,master因为它偏离了mybranch(但从那时起没有新的变化mybranch)。


在所有情况下,--文件名前的分隔符都表示命令行标志的结束。这是可选的,除非如果参数指的是提交或文件,Git 会感到困惑,但包含它并不是一个坏习惯。

2022-02-14