在 Git 中将提交移动到另一个分支

Abdul Jabbar 2023年1月30日
  1. 在 Git 中计算迁移的提交次数
  2. 在 Git 中移动提交到一个新的分支
  3. 将提交移动到 Git 中的现有分支
在 Git 中将提交移动到另一个分支

Git 是现代软件世界中非常有用且功能强大的工具。许多类型的文件和代码可以通过 Git 中的分支和提交来存储。分支是一个不同的概念,具体取决于你使用的版本控制系统。由于其效率,许多开发人员认为它是最受青睐的版本控制系统。

大多数时候,当完成一些工作并提交到特定分支后,我们会遇到这种情况,我们意识到我们错误地提交到了错误的分支,并想在另一个分支上再次提交。Git 来救我们了,它允许我们将提交移动到其他现有分支或新分支上。

本指南将让我们基本了解如何将我们的提交移动到另一个分支,它可能是一个新的或现有的分支。此外,我们将讨论如何使用 git branch 命令创建新分支,使用 git reset 命令移动提交,以及使用 git merge 命令将这些更改合并回主分支。

在 Git 中计算迁移的提交次数

在开始整个过程​​之前,我们需要判断情况。假设我们已经检查了要更改的分支;为此,我们需要了解历史。

我们将使用以下命令来计算要移动的提交数。

git log

执行后,我们可以看到 HEADorigin/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 Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

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

相关文章 - Git Commit

相关文章 - Git Branch