在 Git 中将提交移动到另一个分支
Git 是现代软件世界中非常有用且功能强大的工具。许多类型的文件和代码可以通过 Git 中的分支和提交来存储。分支是一个不同的概念,具体取决于你使用的版本控制系统。由于其效率,许多开发人员认为它是最受青睐的版本控制系统。
大多数时候,当完成一些工作并提交到特定分支后,我们会遇到这种情况,我们意识到我们错误地提交到了错误的分支,并想在另一个分支上再次提交。Git 来救我们了,它允许我们将提交移动到其他现有分支或新分支上。
本指南将让我们基本了解如何将我们的提交移动到另一个分支,它可能是一个新的或现有的分支。此外,我们将讨论如何使用 git branch 命令创建新分支,使用 git reset
命令移动提交,以及使用 git merge 命令将这些更改合并回主分支。
在 Git 中计算迁移的提交次数
在开始整个过程之前,我们需要判断情况。假设我们已经检查了要更改的分支;为此,我们需要了解历史。
我们将使用以下命令来计算要移动的提交数。
git log
执行后,我们可以看到 HEAD
是 origin/HEAD
头部的两个提交,这是我们需要移动到另一个分支的两个期望提交。下面是剩下的步骤,我们将在其中介绍如何将这些提交移动到新分支或现有分支。
在 Git 中移动提交到一个新的分支
下面提到的步骤将向我们展示如何将最新的提交移动到新的分支。
-
创建一个新分支
git branch feature/new branch
此命令将创建一个新分支,其中将包含
master(current)
分支的所有提交。 -
将当前分支移回两个提交
git reset --keep HEAD~2
-
查看新分支
git checkout feature/new branch
通过执行这些,我们的两个最新提交已从 master
(当前分支)中删除并添加到一个名为 feature/new branch
的新分支中。
将提交移动到 Git 中的现有分支
下面提到的步骤将向我们展示如何将最新提交移动到现有分支。如果我们一直在使用功能分支,这对我们很有用,但是我们开始错误地在错误的分支中进行提交。让我们假设当前分支以及我们要删除的提交是 master
。
-
检出现有分支
git checkout feature/existing branch
命令
git checkout
不仅限于使用工作目录。它也可以用于将HEAD
参考指针移动到分支上的参考点。 -
合并主分支
git merge master
git merge
命令也可用于将分支合并到当前分支中,但前提是当前分支已经合并到正在合并的分支中。 -
查看主分支
git checkout master
命令
checkout
master 拉下最新版本的代码并创建一个名为master
的新分支。 -
将当前分支移回两个提交:
git reset --keep HEAD~2
--keep
选项将重置索引条目并更新工作树中提交和HEAD
之间不同的文件。当 commit 之间的文件不同且 HEAD 有本地更改时,reset 将终止。因此,最新的两个提交已从master
中删除并添加到现有分支中。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn