1

场景如下:

1 <- 2 <- 3 <- 4 <- 5

头部目前在 5,master 分支。后来我们发现变更集 3 到 5 包含不需要的特性(但我们不想删除那些变更集),我们希望从变更集 2 继续进一步开发。将来,以 2 为根的变更集将是主分支:

1 <- 2 <- 3 <- 4 <- 5

     ^--- 6 <- 7 <- 8 <- 9 <- 10 <- 11 <- ..

在 Git 中最好的方法是什么?我们使用 Heroku,并且已经将变更集 1-5 推送到 Heroku。

4

1 回答 1

4

假设您在 master 分支中,有几个提交,您想回退,但将您拥有的代码保留在新分支中。步骤如下

  1. 为当前代码创建一个新分支

    git branch new-branch
    
  2. 确定你想倒带多远 master

    git log
    

查看日志时,找到您要保留的最后一个提交并记下其哈希标记。它将在下一步中使用。

  1. 倒带/移动主人回到找到的提交

    git reset --hard ab15cd26 # (assuming ab15cd26 is the hash tag)
    
  2. 通过检查新创建的分支回到你所在的位置

    git checkout new-branch
    

如果您希望将更改推送到远程仓库,您还需要使用

git push --force remote-repo master
于 2013-09-02T07:50:52.217 回答