git:如何将提交的更改从主分支移动到分支?

3

我们有一个项目,其中一位开发人员在主分支上进行了几次提交 -- 而不是从主分支创建单独的分支 -- 导致出现了问题。我该如何:

  1. 撤销主分支中的这些提交
  2. 从主分支创建一个新分支
  3. 将这些提交重新提交到新分支中(或者使用 git 的正确术语)?
1个回答

3
您可以先完成第1步和第2步,但您也可以简单地处理第2步和第3步,然后再完成第1步。
引用:
  1. 从主分支上创建一个新分支
  2. 重新提交(或其他git术语)这些提交到新分支中?
假设您的工作副本中存在这些错误提交在您的master分支中:
只需创建并切换到新分支即可:
git checkout -b name_of_new_branch

然后将其推送到存储库:

git push -u origin name_of_new_branch 

您的同事现在应该能够做到:

git fetch origin
git checkout name_of_new_branch

撤销主分支中的那些提交。
git checkout master
git reset --hard HEAD~N

其中N是您同事的不良提交数量。

如果您可以覆盖存储库中的分支(GitHub的默认设置),那么您可以执行以下操作:

git push origin master --force

请非常小心使用此选项。如果我是您,我会等待某人确认这些命令是否正确;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接