在Eclipse EGit中无需切换分支,能否将提交Cherry Pick至另一分支?
不用检出分支B,在EGit里直接Cherry Pick含合并的提交到分支B可行吗?
当然可以!我日常用EGit管理代码时经常这么操作,确实能省不少切换分支的时间,尤其是针对带合并操作的提交,下面给你详细说怎么弄:
核心操作步骤
- 首先确保当前处于包含目标提交的分支(比如你说的master),而且本地没有未提交的修改——这一步很重要,避免冲突干扰。
- 打开Eclipse的「Git Repositories」视图(可以通过
Window > Show View > Other... > Git > Git Repositories调出)。 - 在视图里找到你的仓库,展开
Branches > Local Branches,右键点击分支B,选择Cherry Pick...。 - 在弹出的对话框里点击「Select...」,在提交历史列表里找到你要cherry-pick的提交(包括合并提交)。如果是合并提交,EGit会弹出提示让你选择要保留的父提交,这里选对应master分支的那个父节点就对了,这样才能正确把合并的内容移植到分支B上。
- 确认选择后点「Finish」,EGit就会自动把提交(包括合并提交)应用到分支B,全程不用切换到分支B。
关键注意事项
- 冲突处理:如果cherry-pick时遇到冲突,EGit会暂停操作。你可以在当前的master分支里解决冲突,然后在「Git Staging」视图里右键冲突文件选Mark as Merged,再回到Git Repositories视图右键分支B,选择Continue Cherry Pick完成操作。
- 合并提交的父节点选择:合并提交有两个父分支,一定要选对对应你要移植的那个分支的父节点,不然可能会把无关的代码带进来,导致cherry-pick结果不符合预期。
- 仓库清洁度:操作前务必保证当前分支工作区干净,没有未提交的更改,不然EGit可能直接拒绝执行,或者让冲突处理变得更麻烦。
内容的提问来源于stack exchange,提问作者JRA_TLL
相关产品推荐
相关产品推荐

