Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 我如何跳过一个补丁时,樱桃采摘多个?_Git - Fatal编程技术网

Git 我如何跳过一个补丁时,樱桃采摘多个?

Git 我如何跳过一个补丁时,樱桃采摘多个?,git,Git,我已使用如下命令开始采摘樱桃: git cherry-pick A B C D 假设补丁A和B有一些合并冲突,但我最终修复了它们,并git cherry pick--continue。当我最终进入C时,我意识到同样的代码一定已经被应用,现在补丁是空的 我可以选择git cherry pick--allow empty,但这会在我的历史记录中留下一个我不想要的空提交。理想情况下,我只想跳过这一个补丁(C)。但是,没有git cherry pick--skip。我可以git cherry pick

我已使用如下命令开始采摘樱桃:

git cherry-pick A B C D
假设补丁A和B有一些合并冲突,但我最终修复了它们,并
git cherry pick--continue
。当我最终进入C时,我意识到同样的代码一定已经被应用,现在补丁是空的

我可以选择
git cherry pick--allow empty
,但这会在我的历史记录中留下一个我不想要的空提交。理想情况下,我只想跳过这一个补丁(C)。但是,没有git cherry pick--skip。我可以
git cherry pick--abort
,但那会丢失我对A和B的所有工作


作为一种解决方法,我可以接受空的,记住它是哪一个,然后在完成樱桃采摘后,用git-rebase-ib将其删除。有更好的方法吗?

您可以使用git cherry pick--quit退出正在进行的cherry pick。之后,A和B应该仍然在您的分支中,您继续使用git 2.23(2019年第三季度)执行git cherry pick D

,“
git cherry pick/revert
”学习了一个新的“
--skip
”操作

因此,在您的情况下:
git cherry pick——跳过
C
上的

参见,,(2019年7月2日)作者。
(于2019年7月19日合并)

樱桃拾取/还原:添加--跳过选项
git am
rebase
有一个
--skip
标志,如果 用户希望这样做

git-reset
revert
期间,用户同样可以跳过提交,但需要使用“
git-reset
”(或在冲突的情况下“
git-reset--merge
”),然后是“
gi
t(
cherry-pick
--continue
”跳过提交。
这对于用户来说更烦人,有时甚至令人困惑

添加一个
--skip
选项,使用户可以更轻松地跳过提交,并使命令更加一致

更新建议消息,以较少地告诉用户这一点 跳过提交的繁琐方式

因此,与其看到:

你会看到:


在重写C中的“
git-rebase
”时,防止“
git-commit
”在中断的cherry-pick期间进行空提交或修改的机制被破坏,该机制已使用git 2.27(2020年第2季度)进行了更正

参见(2019年12月6日)作者。
参见,,,,(2019年12月6日)作者。
(于2020年3月25日合并)

:在重基期间为空提交提供正确建议 原始补丁作者:Johannes Schindelin
签字人:菲利普·伍德

在(“
Git cherry pick/revert
:advision using--skip”,2019-07-02,Git v2.23.0-rc0--中列出),
Git commit
学会了在尝试cherry pick空补丁时建议运行
Git cherry pick--skip

但是,在打印此建议时(最初建议中性的
git重置
),忽略了不仅仅是一个
git cherry pick
),还有更多的条件:在重新基址期间也可能发生同样的情况

让我们建议正确的命令,即使是在重基期间

同时,我们调整了更多的位置,错误地假设存在
CHERRY\u PICK\u HEAD
意味着这肯定是一个
CHERRY PICK
正在进行中

注意:当用户在重基期间运行
git cherry pick
时,我们会尽力处理这种情况。
这是非常有效的(例如,在交互式重基中的
exec
行中)。
另一方面,在cherry pick期间不可能运行rebase,这意味着:如果
rebase merge/
sequencer/
都存在,或者
cherry pick\u HEAD
rebase\u HEAD
指向相同的提交,我们仍然建议使用
git cherry pick--skip


也许您可以重新设置一系列提交的基础,而不是整个分支的基础?A^..B?
Otherwise, please use 'git reset

   If you wish to skip this commit, use:

   git reset
 Otherwise, please use 'git cherry-pick --skip

 and then use:

   git cherry-pick --continue