gpt4 book ai didi

git:获得 `git rebase --interactive` 的好处,用于 cherry picks

转载 作者:IT王子 更新时间:2023-10-29 01:17:16 24 4
gpt4 key购买 nike

我希望能够做到这一点:

git cherry-pick --interactive hash-0..hash-n-1  # fantasy command

并获得与交互式 rebase 相同的工作流程:出现一个编辑器缓冲区,其中包含:

pick hash-0
pick hash-1
pick hash-2
...
pick hash-n-1

在这里我可以删除任何不需要的提交,压缩它们在一起,或者编辑在选择之间暂停以进行一些手动修复(比如commit --amend ) 等等。

请注意交互式 rebase 的 pickcherry-pick 非常相似。

现在上面的操作可以先cherry-pick,再interactive rebase来完成,比较不方便。即:

$ git tag old-head  # mark starting point for later rebase
$ git cherry-pick hash-0..hash-n-1 # get everything first
$ git rebase --interactive old-head # okay now rebase "in-branch" to fix it up

这不仅因为这两个步骤不方便,而且因为它可能需要解决提交中的冲突,您甚至不希望这些冲突在 rebase 阶段被丢弃。

最佳答案

好的,想出了一个不错的 hack。

在当前分支中的一次提交上开始一个简单的 rebase --interactive HEAD^。你会得到类似的东西:

pick 1efd396b * Fixed a bug in frob function

现在,只需粘贴您要选择的其他哈希:

pick 1efd396b * Fixed a bug in frob function
pick f01934db * Awesome feature added
pick 6fd109c1 * Refactored the widgets layer
squash 3900fd77 * Refactored the widgets layer s'more

保存并退出,然后 wee:rebase mule 会根据命令主动接收您加载的额外内容,并将其 merge 到当前分支中。

你实际上可以做一个空的 rebase :

git rebase --interactive HEAD

你得到一个包含

的缓冲区
noop

您不必删除它;之后只需添加您的选择即可。

附录: 要生成此方法的选择列表,请使用 git log --oneline --reverse from..to,然后修剪所需的输出并在前面加上将命令重新设置为每一行:picksquash、...

关于git:获得 `git rebase --interactive` 的好处,用于 cherry picks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com