查看与特定 git 分支有关的提交和差异

问题描述

假设我有以下 git 结构:

A - B - C - D - E - F master
         \_ G - H - I branch

git checkout branch; git log 无法识别分支与 master 的分歧点。

如果我想检查此分支中的所有更改怎么办?

解决方法

您正确找到了git log master..branch

要同时列出 C(分叉点本身),请尝试:

git log --boundary master..branch

如果您想要 CI 之间的差异,那就是:

git diff master...branch  # three dots

这是一个快捷方式:

git diff $(git merge-base master branch) branch

git log 的额外说明:

要更清楚地了解谁是谁的父母,您可以添加 --graph :

git log --graph --boundary master..branch

将它与 --oneline 结合可以让您(恕我直言)对您的历史有一个好的和紧凑的概述:

git log --oneline --graph --boundary master..branch
,

很惊讶我无法轻易找到这个问题的答案。这似乎是一个非常普遍的问题。

git log master..branch

... 获取 G,H,I 的提交(有谁知道如何获取 C,G,I?)

但是 git diff master..branch 得到 diff(F -> I)

您需要:

git log -p master..branch`

...得到diff(C -> I)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...