如何在 Git 中获得最后一次从 develop 到 master 的合并?
How do I get the last merge from develop into master in Git?
为了自动化我的 CI,我需要获取从 develop 分支执行的最后一次合并的信息到 master 分支(或更一般地,从给定的源分支到给定的目标分支)。
我试过
git log --oneline --merges master -20
但是这让我得到了所有最后 20 个合并到 master 的列表,没有按源分支区分(让我有繁琐的任务来解析和推断源分支评论)。
是否有直接从命令行按源分支过滤的干净而可靠的方法?
注意:我不需要有关CI或分支机构管理最佳实践的建议。我们在内部使用 GitFlow 工作流 (https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow),因此一切 repository/CI-related 都已经处于完美状态(从方法论上讲)。我只需要 非常具体 对 非常具体 问题的回答,谢谢!
Is there a way to filter by source branch directly from the command line?
没有。 Git 中的分支只是标签。合并不记得它们被合并到哪个分支或从哪个分支合并,它们只记住它们的父提交和提交消息。一旦合并,两个历史都同样是分支的一部分。
这些是同一存储库的不同视图。
< C <-- D <---- I [develop]
/ \ /
A < B < E < F < G < H [master]
<------ I [develop]
/ /
A < B < C < D < G < H [master]
\ /
E <--- F
除了 I 之外的所有提交都是 master
分支的一部分(即它们可以从 H 到达)。所有提交都是 develop
分支的一部分(即它们可以从 I 到达)。 G 是来自 develop
的合并还是来自不相关的分支?拓扑上没法说。
你能做的最好是希望尝试从合并提交消息和历史中推断出信息。如果您的合并提交消息是一致的,您也许可以摆脱这样的情况,但它很脆弱。
git log --oneline --merges <destination> | grep "Merge branch '<source>'"
我建议创建一个特殊的日志,下一个要点有一个很棒的日志来查看不同的分支、用户和提交时间
为了自动化我的 CI,我需要获取从 develop 分支执行的最后一次合并的信息到 master 分支(或更一般地,从给定的源分支到给定的目标分支)。 我试过
git log --oneline --merges master -20
但是这让我得到了所有最后 20 个合并到 master 的列表,没有按源分支区分(让我有繁琐的任务来解析和推断源分支评论)。 是否有直接从命令行按源分支过滤的干净而可靠的方法?
注意:我不需要有关CI或分支机构管理最佳实践的建议。我们在内部使用 GitFlow 工作流 (https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow),因此一切 repository/CI-related 都已经处于完美状态(从方法论上讲)。我只需要 非常具体 对 非常具体 问题的回答,谢谢!
Is there a way to filter by source branch directly from the command line?
没有。 Git 中的分支只是标签。合并不记得它们被合并到哪个分支或从哪个分支合并,它们只记住它们的父提交和提交消息。一旦合并,两个历史都同样是分支的一部分。
这些是同一存储库的不同视图。
< C <-- D <---- I [develop]
/ \ /
A < B < E < F < G < H [master]
<------ I [develop]
/ /
A < B < C < D < G < H [master]
\ /
E <--- F
除了 I 之外的所有提交都是 master
分支的一部分(即它们可以从 H 到达)。所有提交都是 develop
分支的一部分(即它们可以从 I 到达)。 G 是来自 develop
的合并还是来自不相关的分支?拓扑上没法说。
你能做的最好是希望尝试从合并提交消息和历史中推断出信息。如果您的合并提交消息是一致的,您也许可以摆脱这样的情况,但它很脆弱。
git log --oneline --merges <destination> | grep "Merge branch '<source>'"
我建议创建一个特殊的日志,下一个要点有一个很棒的日志来查看不同的分支、用户和提交时间