0

两个分支很久以前就出现了分歧(例如,开发和大师)。我想展示该分歧点两侧的历史,例如 +/-10 次提交。(这是为了决定如何重新捕获旧分支并改变命名约定)

很容易找到合并基础 ( git merge-base devel master),并显示之前的 10 次提交 (例如git log --oneline -10 $(git merge-base devel master))。

但是我不确定如何在合并基础之前(比最近)定位 10 个提交点,以限制显示的提交范围(例如使用 show-branch)。

有没有办法沿着给定的发展路线进行第 n 个最近的提交?

4

1 回答 1

0

为此,您只需要 grep 的上下文选项。

git log devel master --no-abbrev-commit --oneline --date-order \
| grep -10 $(git merge-base devel master)

如果您想要为这些绘制图形结构, git log 必须打印一些没有提交的行以保持所有内容正确连接,这会弄乱您的计数。因此,首先获取原始提交 ID,然后告诉 log 将它们全部显式地绘制出来:

git rev-list --date-order devel master \
| grep -10 $(git merge-base devel master) \
| xargs git log -21 --graph --decorate --oneline
于 2014-12-07T02:30:07.417 回答