git - 如何挑选特定作者的提交范围?
问题描述
例如我有这样的提交:
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 命令的解决方案?
解决方案
由于只有 ~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
推荐阅读
- assembly - 错误:x86 中“jmp”的指令后缀无效
- c - 函数指针
- javascript - 为什么获取缓存模式和标头选项无法获得新的响应?
- xslt - XSLT 1.0,复制除某些之外的所有子节点
- haskell - Haskell 不使用类型类的更具体的实例
- angular - 多模块通用服务
- javascript - 在 vuetify laravel 中上传音频文件
- javascript - 兄弟文本文件字符串到 JavaScript 中的 blob - 不可用?
- c# - 在 DotRas VPN 连接上使用 Windows 登录凭据
- mongoose - 我无法在猫鼬模式中为这个变量赋值