git分支回切相关操作

100 阅读2分钟

要从 Commit 3 退回到 Commit 2,并在 Commit 2 中提交新的 commit,同时让 Commit 3 成为一个新的分支,你可以按照以下步骤操作:

步骤概述:

  1. Commit 3 退回到 Commit 2
  2. Commit 2 的基础上创建一个新的 commit。
  3. 创建一个新的分支从 Commit 3 开始。

详细步骤:

1. Commit 3 退回到 Commit 2

你可以使用 git reset 命令来回退到 Commit 2

首先,确保你处于一个干净的工作目录(没有未提交的更改)。然后执行以下命令:

git reset --hard HEAD~1

这会将你的当前分支(假设你还在 Commit 3 的分支上)指向 Commit 2,并且丢弃 Commit 3 之后的所有更改。

2. Commit 2 上提交新的更改

现在你的 HEAD 已经回退到 Commit 2,你可以进行新的更改并提交。

# 进行修改
git add .
git commit -m "New commit after reverting to Commit 2"

这时,你的新提交会基于 Commit 2,并且成为当前分支的最新提交。

3. 创建 Commit 3 的新分支

为了将 Commit 3 作为一个新的分支,你可以在 Commit 3 时创建一个新的分支:

  1. 查看 Commit 3 的哈希值

    你可以通过 git loggit reflog 查看 Commit 3 的哈希值。

    git log
    

    找到 Commit 3 的哈希值,例如 <commit_hash_of_commit_3>

  2. 创建一个新的分支并切换到该分支

    使用 git checkout -b 来从 Commit 3 创建一个新的分支:

    git checkout -b branch_from_commit3 <commit_hash_of_commit_3>
    

    这样,你就在 Commit 3 的基础上创建了一个新的分支,当前分支的历史将从 Commit 3 开始。

4. 总结

  • 你从 Commit 3 退回到 Commit 2 并提交新的更改,这时你的主分支(main 或其他分支)将以 Commit 2 为基础,新的 commit 将被加入其中。
  • 你将 Commit 3 移动到一个新的分支,这样它就不再影响主分支的历史。

操作后的 Git 图示:

  • 主分支Commit 2 → 新的提交
  • 新分支Commit 3 (在新分支上开始)

这个过程可以帮助你清理历史,并且让你能根据需要分支出不同的路线。

image.png

图示说明:

  1. Commit 1 → Commit 2 → Commit 3:表示提交历史。
  2. New Commit:从 Commit 2 创建的新提交,表示你在回退到 Commit 2 后所做的更改。
  3. branch_from_commit3:从 Commit 3 创建的新分支,保留了 Commit 3 的历史。

操作流程:

  • 使用 git reset --hard HEAD~1 回退到 Commit 2
  • Commit 2 上提交新的更改,生成 New Commit
  • Commit 3 创建新分支,保留 Commit 3 的历史。