我有一个脚本在一个分支中运行良好,但在另一个分支中被破坏。我想并排查看这两个版本,看看有什么不同。有没有办法做到这一点?
需要明确的是,我不是在寻找比较工具(我使用Beyond Compare)。我正在寻找一个 Git diff 命令,它允许我将主版本与我当前的分支版本进行比较,以查看发生了什么变化。我不在合并或任何事情的中间。我只想说类似
git diff mybranch/myfile.cs master/myfile.cs
git diff可以向您展示两次提交之间的区别:
git diff
git diff mybranch master -- myfile.cs
或者,等效地:
git diff mybranch..master -- myfile.cs
请注意,您必须指定文件的相对路径。所以如果文件在 src 目录中,你会说src/myfile.cs而不是myfile.cs.
src/myfile.cs
myfile.cs
使用后一种语法,如果任何一方都HEAD可以省略(例如,与master..比较)。master``HEAD
HEAD
master..
master``HEAD
您可能还对mybranch...master(来自git diff文档)感兴趣:
mybranch...master
此表单用于查看包含和直到第二个的分支上的更改<commit>,从两者的共同祖先开始<commit>。git diff A...B相当于git diff $(git-merge-base A B) B。
<commit>
git diff A...B
git diff $(git-merge-base A B) B
换句话说,这将给出变化的差异,master因为它偏离了mybranch(但从那时起没有新的变化mybranch)。
master
mybranch
在所有情况下,--文件名前的分隔符都表示命令行标志的结束。这是可选的,除非如果参数指的是提交或文件,Git 会感到困惑,但包含它并不是一个坏习惯。
--