Git:按合并顺序提交

Git: commits by order of merge

我已经编写了一个 python 脚本来遍历我的 master 分支中的最后 10 次提交。 master分支限制提交,只能合并到。

考虑以下场景。

分支 1 在上午 10 点完成了提交 1 和 2 分支 2 在上午 11 点完成了提交 3 和 4。

我在分支 1 之前合并了分支 2 到 master。

现在,当我在迭代时打印提交时,它仍然打印 4 和 3,然后是 2 和 1。

我需要按照最新提交合并到 master 的顺序进行迭代。 IE。我需要它作为 2、1、4 和 3。这可能吗?

git logsort options 是:

  • --date-order
  • --author-date-order
  • --topo-order
  • --reverse

在你的情况下 --topo-order 将完成这项工作:

> git log --topo-order --no-merges --format="%ad -- %s"
2019-03-12 18:05:02 -- c2 (topic1)
2019-03-12 18:04:59 -- c1 (topic1)
2019-03-12 18:05:22 -- c4 (topic2)
2019-03-12 18:05:19 -- c3 (topic2)
2019-03-12 18:04:47 -- commit on master