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 log
的 sort 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
我已经编写了一个 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 log
的 sort 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