git:如何将提交的更改从master移动到branch?

时间:2014-05-13 21:25:41

标签: git branch commit

我们有一个项目,其中一个开发人员在主分支中做了一些提交 - 而不是从master创建一个单独的分支 - 并且破坏了东西。我如何:

  1. 撤消主人提交的提交
  2. 从主人那里做一个分支
  3. 重新提交(或任何正确的git术语)那些提交到新分支?

1 个答案:

答案 0 :(得分:3)

你可以制作1& 2,但你可以简单地关注2& 3,然后做1。

  
      
  1. 从主人那里做一个分支
  2.   
  3. 重新提交(或任何正确的git术语)那些提交到新分支?
  4.   

假设您的工作副本中master分支上有这些错误提交:

只需创建并切换到新分支:

git checkout -b name_of_new_branch

然后将其推送到repo:

git push -u origin name_of_new_branch 

你的同事现在应该可以做到:

git fetch origin
git checkout name_of_new_branch

  
      
  1. 撤消主人提交的提交
  2.   
git checkout master
git reset --hard HEAD~N

其中N是您同事的错误提交次数。

然后,如果您可以覆盖repo中的分支(github中的默认设置),那么您可以:

git push origin master --force

请谨慎使用此选项。如果我在你的鞋子里,我会等到有人确认,那些命令是正确的;)