git 在本地分支A上显示本地分支B没有的提交

hjqgdpho  于 2022-11-27  发布在  Git
关注(0)|答案(2)|浏览(209)

我已经读过了

$ git checkout B
$ git cherry -v A

但这对我来说没有任何结果,我认为这(和其他一些类似的命令,我认为是git log B ^A,它确实输出了一些差异,但不知何故没有显示所有不同的提交)只适用于B是A的远程跟踪分支的情况。
但是我想比较两个本地分支的提交,那么我该怎么做呢?
更新:为了更详细,我尝试

git log B..A

git log B ^A

但是来自A的HEAD没有出现,尽管它不在B上。
编辑:不再确定了,如果我把git cherry做错了,我很可能犯了一个错误,所以它实际上应该能工作

g0czyy6m

g0czyy6m1#

如果您想显示所有可从A访问的提交,但排除那些可从B访问的提交:

git log A ^B # read: A, but *not* B

或者,更符合git log的一般用法:

git log B..A # read: show history from B to A

两个命令的行为相同(两个参考规范描述相同的提交)

wgx48brx

wgx48brx2#

让我们假设运行:

git branch

得到branchAbranchB
我们可以将它们与以下各项进行比较:

git diff branchA..branchB

顺序其实并不重要,如果你把branchB和branchA颠倒过来,加号就变成减号,反之亦然。一般来说,老的分支先走,但这只是一个惯例

git diff --color-words branchA..branchB

使用此命令,您将获得与使用前一个命令获得的结果不同的视图
您甚至可以通过以下方式进行比较,以选择branchB中最后一次提交的祖先:

git diff branchA..branchB^
git diff branchA..branchB^^

相关问题