协慌网

登录 贡献 社区

使用 Git 从先前的提交中分支

如果我有 n 次提交,我怎样才能从 n-3 提交中分支?

我可以看到每个提交的哈希值。

答案

您可以通过哈希创建分支:

git branch branchname <sha1-of-commit>

或者使用符号引用:

git branch branchname HEAD~3

要在创建分支时签出分支,请使用

git checkout -b branchname <sha1-of-commit or HEAD~3>

要在 github.com 上执行此操作:

  1. 转到您的项目。
  2. 点击 “提交”。
  3. 在要分支的提交上单击<> (“在历史记录中此时浏览存储库”)。
  4. 单击左上角的 “tree:xxxxxx”。在语言统计栏的下方,您将获得 “查找或创建分支” 选项(只需在其中键入新的分支名称) 从之前的提交分支

魔法可以通过git reset来完成。

  1. 创建一个新分支并切换到它(所以你的所有最新提交都存储在这里)

    git checkout -b your_new_branch

  2. 切换回上一个工作分支(假设它是主人)

    git checkout master

  3. 删除最新的 x 提交,保持 master 清理

    git reset --hard HEAD~x # in your case, x = 3

从此刻起,所有最新的 x 提交仅在新分支中,而不再在您之前的工作分支(master)中。