首页 > 解决方案 > 如何挑选特定作者的提交范围?

问题描述

例如我有这样的提交:

comit1 user1
comit2 user2
comit3 user3
comit4 user1
comit5 user1
comit6 user2
comit7 user1

如何仅从 user1 提交提交?

comit1 user1
comit4 user1
comit5 user1
comit7 user1

如果无法使用cherry-pick,是否还有其他使用1,2 命令的解决方案?

标签: gitgit-cherry-pick

解决方案


由于只有 ~20 次提交user1,您可以结合git cherry-pick使用git log --author

git cherry-pick $(git log --pretty="%H" --author "user1" commit1~..commit7)

或者,您也可以使用git rev-list代替git log(git rev-list如果您只对提交哈希感兴趣,则等效于 git log --pretty="%H" 和更短——感谢@RomainValeri 指出这一点!):

git cherry-pick $(git rev-list --author "user1" commit1~..commit7)

请注意,如果user1的提交过多,这失败,因为参数的数量(每个提交一个)会导致堆栈溢出。但是,有一些解决方法git cherry-pick


推荐阅读