我有2个提交:A和B.两者相互独立,包含不同的文件。我有2个分支:master
和branch1
:
master: A
branch 1: A, B
我需要删除branch 1
并将提交B
移至master
。我尝试用
git cherry-pick B
,
但它只是将B复制到A中,而我需要它具有相同的提交编号 - 最重要的是 - 保存那里的注释!
有什么办法吗?我看了不同的答案,真的不确定如何处理我的情况。
答案 0 :(得分:7)
将branch1合并到master中是最容易理解的操作,也是我推荐的选项。但是,它将显示为主服务器上的新提交,具有不同的提交ID 。
我们将从branch1获取新的提交并尝试将它们合并为master作为我们可以提交的新变更集。这将保留branch1和master的历史记录。
从命令行,您将执行以下步骤:
1)首先签出要将合并到
的分支git checkout master
2)现在使用--no-ff option
合并您的分支git merge --no-ff branch1
3)如果需要,您现在可以删除旧分支
git branch -d branch1
替代方法是执行rebase。
通过将分支1重新命名为master,您将有效地将branch1的提交历史重播到主服务器上。之后,看起来好像您最初检查了提交' b'进入主人,保留你的提交ID 。
同样,从命令行,您将执行以下步骤:
1)首先检查要将转换为
的分支git checkout master
2)现在将你的分支重新加入主人
git rebase branch1
注意 - 有一些关于变基的警告,如果你不完全理解它是如何工作的,那么使用合并会更安全。
如果有疑问 - 合并,不要改变。