【发布时间】:2022-01-02 06:22:48
【问题描述】:
根据其手册页,git cherry 进行了一些测试以确定提交是否应该被挑选到另一个分支:
The equivalence test is based on the diff, after removing whitespace
and line numbers. git-cherry therefore detects when commits have been
"copied" by means of git-cherry-pick(1), git-am(1) or git-rebase(1).
我想创建一个脚本,通过删除只会更改某个文件的所有提交来进一步最小化精选候选列表。
例如如果将更改文件 A、B、C 的樱桃采摘提交 1 更改到我的分支中只会更改文件 A,而 B 和 C 已经包含更改,我希望脚本从候选列表中删除提交。
换句话说,如果我按照git cherry 的建议挑选了一个提交,并且生成的提交只会更改文件 A,而不会更改其他文件,我想将其从我的列表中删除。
有没有一种简单的方法可以从 Git 中获取这些信息?
【问题讨论】:
-
您能否详细解释一下您的工作流程是什么,以及为什么挑选樱桃如此常见,您想通过脚本整体进行?
-
上游发生冲突和恢复的可能性很难回答——如果樱桃选择已被应用并随后恢复或修改,
git cherry仍将显示为已应用了,因为它有,但上游提示不再有结果,所以再次挑选它会改变文件,这可能是你想要的,也可能不是。在这些情况下,您希望列出什么? -
请注意,我们假设您的意思是会被cherry-pick改变,而不是会被cherry改变,因为
git cherry只是打印出提交。它从不更新任何东西。
标签: git git-cherry