考虑以下情况:
多个分支 - 主,开发1。dev-n 和 feature1。在 feature1 分支上发生了一些开发(对该分支的提交),我需要审查它们。
然而。。。
- 功能1分支在过去某个时候从主分支中分离出来。
- 在合并到主节点之前,master 已合并到 Feature1 分支中
- 功能1(+主)被合并回主节点。
所以图表看起来像这样:
M F
|
g (merge F to master)
|
|
f |
| 4 (last commit to F)
e |
| 3 (merge master to F - F contains commit b,c)
d/|
| 2
c |
| 1 (first commit to F)
b /
|/
a(base)
如何查看直接向分支 F (1-4) 进行的提交,而不查看对其他分支进行的提交并合并到 F (a-g) 中?
你可以试试这个: git log d..4
这意味着所有提交都是4
(a b c d 1 2 3 4),而不是d
(a b c d),结果是1 2 3 4
有关Revision Selection
的更多信息,请访问修订版选择
以下是使用 reflog 的定制解决方案:
git log --first-parent --no-merges $(git reflog feature1|tail -1|cut -d' ' -f1)..feature1
reflog 提供了对该分支引用的所有更新,而 tail 只得到第一个(即分叉点),然后我们只是削减分叉点的 SHA。