如何在 GIT 中查找与合并提交关联的所有提交?
How to find all commits associated with a merge commit in GIT?
我正在研究 git 预推送更新挂钩,其中我想检查提交中的特定条件,仅当没有与之关联的合并提交时。如果有一个带有关联合并提交的提交,那么我想跳过检查单个提交并改为检查合并提交。
为了能够做到这一点,我需要有与合并提交关联的确切提交列表,以便我可以从提交列表中过滤掉它们,而该提交列表又包含被推送的提交的总列表到远程。
是否有 git command/option 来查找在合并提交中合并的提交范围?
例如:我只想得到下面突出显示的文本作为命令输出:
$ git log --merges
commit fd3d8c5bc3e689cf44b5ca1e8d06fe2a6bd02716
**Merge: f778e20 cefb2e9**
Author: abc <abc@abc.com>
Date: Mon Aug 17 22:00:49 2015 -0700
Merge branch 'feature_personal'
我尝试执行以下操作:
$ git log --pretty=%P -n 1
f778e20d1bfa0b1821d93feca3863a69af48de1f cefb2e96279447b2c268167a2db3605b84717de
当您使用 -n 1 时效果很好,它在客户端可用,但不能作为服务器端 git 挂钩的一部分。有没有办法使用合并提交的 SHA id 并获取这些详细信息?
我还想获取 f778e20..cefb2e9 范围内的所有提交列表。这会给我与合并提交关联的提交的总列表。
我尝试使用 git rev-list f778e20..cefb2e9 但这列出了很多提交。
有 suggestions/thoughts 吗?
您可以使用类似的东西:
git log --oneline --merges <commit_hash_to> <commit_hash_from>
下面是一个问题的link,其中提供了有关选择这些哈希(父代)以获得清晰范围的详细信息。
我正在研究 git 预推送更新挂钩,其中我想检查提交中的特定条件,仅当没有与之关联的合并提交时。如果有一个带有关联合并提交的提交,那么我想跳过检查单个提交并改为检查合并提交。
为了能够做到这一点,我需要有与合并提交关联的确切提交列表,以便我可以从提交列表中过滤掉它们,而该提交列表又包含被推送的提交的总列表到远程。
是否有 git command/option 来查找在合并提交中合并的提交范围?
例如:我只想得到下面突出显示的文本作为命令输出:
$ git log --merges
commit fd3d8c5bc3e689cf44b5ca1e8d06fe2a6bd02716
**Merge: f778e20 cefb2e9**
Author: abc <abc@abc.com>
Date: Mon Aug 17 22:00:49 2015 -0700
Merge branch 'feature_personal'
我尝试执行以下操作:
$ git log --pretty=%P -n 1
f778e20d1bfa0b1821d93feca3863a69af48de1f cefb2e96279447b2c268167a2db3605b84717de
当您使用 -n 1 时效果很好,它在客户端可用,但不能作为服务器端 git 挂钩的一部分。有没有办法使用合并提交的 SHA id 并获取这些详细信息?
我还想获取 f778e20..cefb2e9 范围内的所有提交列表。这会给我与合并提交关联的提交的总列表。
我尝试使用 git rev-list f778e20..cefb2e9 但这列出了很多提交。
有 suggestions/thoughts 吗?
您可以使用类似的东西:
git log --oneline --merges <commit_hash_to> <commit_hash_from>
下面是一个问题的link,其中提供了有关选择这些哈希(父代)以获得清晰范围的详细信息。