git显示返回合并基的最后几个提交

git显示返回合并基的最后几个提交,git,git-history-graph,Git,Git History Graph,两个分支很久以前就分开了(例如devel和master)。我想显示该分歧点两侧的历史记录,例如+/-10提交。(这是为了决定如何重新捕获旧分支,从而改变命名约定) 很容易找到合并基(git merge base devel master),并显示之前的10次提交(例如git log--oneline-10$(git merge base devel master)) 但我不确定如何在合并基础之前(比之前)定位10个提交点,以限制显示的提交范围(例如,使用show branch) 有没有一种方法可

两个分支很久以前就分开了(例如devel和master)。我想显示该分歧点两侧的历史记录,例如+/-10提交。(这是为了决定如何重新捕获旧分支,从而改变命名约定)

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

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


有没有一种方法可以在给定的开发路线上进行第n次最近的提交?

为此,您只需要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

这是一个非常可靠的命令行。谢谢你的精心设计。我一直希望有一个隐藏的--before=选项来补充--more选项到
gitshow分支np<代码>显示分支
--更多也不做之前的事,这样的上下文显示似乎是一件有帮助的事情,但是既然日志输出通过你的寻呼机传送,你只需将它提交到正确的提交位置,就可以得到你想要的内容。我修正了一个打字错误,并在revlist.p.s.中添加了日期顺序。我承认,我真的不理解(在s.o.上很常见)对于完全普通的工具已经可以为你做的事情有命令选项的愿望。这导致每个工具都导入了所有通用工具,在我看来,这似乎是毫无意义的重复和浪费。我确实知道这种感觉;-),但很明显,我认为很常见的事情(即我的需求)应该是一个不错的选择——所以肯定有一个已经可用了。。。(经典的投影偏差谬误)。在这种情况下,我已经在Windows环境中工作了很多年,所以bash/Linux脚本需要额外的(我有限的认知)努力,所以这是一种折衷。不管是哪种方式,都要感谢cli脚本。