我正在使用git pre-push更新挂钩,其中仅当没有与之关联的合并提交时,我才想检查提交中的特定条件。如果存在与关联的合并提交相关的提交,那么我想跳过检查单个提交并改为检查合并提交。
为了能够做到这一点,我需要具有与合并提交关联的确切提交列表,以便可以从提交列表中过滤掉它们,而该列表又包含被推送到远程的全部提交列表。
是否有git命令/选项来查找合并到Merge提交中的提交范围?
例如:我只想获得以下突出显示的文本作为命令输出:
$ git log --merges
commit fd3d8c5bc3e689cf44b5ca1e8d06fe2a6bd02716
**Merge: f778e20 cefb2e9**
Author: abc <[email protected]>
Date: Mon Aug 17 22:00:49 2015 -0700
Merge branch 'feature_personal'
我尝试执行以下操作:
$ git log --pretty=%P -n 1
f778e20d1bfa0b1821d93feca3863a69af48de1f cefb2e96279447b2c268167a2db3605b84717de
当您使用-n 1时,此方法效果很好,它在客户端可用,但不能作为服务器端git hook的一部分工作。有没有一种方法可以使用合并提交的SHA id并获取这些详细信息?
我还想获取f778e20..cefb2e9范围内包含的所有提交列表。这将为我提供与合并提交相关联的提交的总列表。
我尝试使用git rev-list f778e20..cefb2e9,但这列出了很多提交。
有什么建议/想法吗?
您可以使用类似:
git log --oneline --merges <commit_hash_to> <commit_hash_from>
以下是一个问题的链接,该问题提供了有关选择这些哈希(父级)以获取清晰范围的详细信息。
http://stackoverflow.com/questions/18679870/list-commits-between-2-commit-hashes-in-git
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句