Git:将最后一次提交从分支移动到主控
Git: move last commit from branch to master
我有 2 个提交:A 和 B。两者相互独立并且包含不同的文件。我有 2 个分支:master
和 branch1
:
master: A
branch 1: A, B
我需要删除 branch 1
并将提交 B
移动到 master
。我试着用
做到这一点
git cherry-pick B
、
但它只是将 B 复制到 A 中,而我需要它具有相同的提交编号,并且——最重要的是——保存那里的评论!
有什么办法吗?我查看了不同的答案,真的不确定如何处理我的情况。
合并
将 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
变基
另一种方法是执行变基。
通过将分支 1 变基到 master,您将有效地将 branch1 的提交历史重播到 master。之后,看起来好像您最初已将提交 'b' 检查到 master,保留您的提交 ID。
同样,您可以从命令行执行以下步骤:
1) 首先签出要将 变基为
的分支
git checkout master
2) 现在将您的分支变基为主分支
git rebase branch1
注意 - 变基有一些注意事项,如果您不完全理解它的工作原理,使用合并更安全。
如有疑问 - 合并,不要变基。
我有 2 个提交:A 和 B。两者相互独立并且包含不同的文件。我有 2 个分支:master
和 branch1
:
master: A
branch 1: A, B
我需要删除 branch 1
并将提交 B
移动到 master
。我试着用
git cherry-pick B
、
但它只是将 B 复制到 A 中,而我需要它具有相同的提交编号,并且——最重要的是——保存那里的评论!
有什么办法吗?我查看了不同的答案,真的不确定如何处理我的情况。
合并
将 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
变基
另一种方法是执行变基。
通过将分支 1 变基到 master,您将有效地将 branch1 的提交历史重播到 master。之后,看起来好像您最初已将提交 'b' 检查到 master,保留您的提交 ID。
同样,您可以从命令行执行以下步骤:
1) 首先签出要将 变基为
的分支git checkout master
2) 现在将您的分支变基为主分支
git rebase branch1
注意 - 变基有一些注意事项,如果您不完全理解它的工作原理,使用合并更安全。
如有疑问 - 合并,不要变基。