4

我正在使用 git flow,不假思索地,我将代码提交到了错误的分支(功能),然后发布了它。

我需要获取该代码,将其从分支 1 中删除,然后将其移至正确的分支,即分支 2。

所有文件都存储在一个文件夹中,这可以使事情变得更容易,我只是不确定如何去做。

例如。

Branch 1 { 
  Commit That contains {
     ./path/to/files_that_should_be_here
     ./path/to/files_that_need_to_be_in_branch_2
  }
}

Branch 2 {
   No Commits.
}
4

3 回答 3

6

如果您还没有发布您的更改,最简单的方法是杀死最后一次提交branch1(注意:这将完全杀死最后一次提交引入的任何内容):

git checkout branch1
git reset --hard HEAD~

然后结帐以更正分支并在那里提交您的更改。

如果你已经发布了更改,你仍然可以杀死最后一次提交,但是你将不得不这样git push --force做,你可能没有权限这样做,即使你这样做了,也可能会给这个存储库的其他用户带来很多痛苦。

相反,您应该简单地还原错误的更改:

git revert <bad_commit>

并在正确的分支中重做。

于 2012-12-28T10:36:53.703 回答
1

将提交移动到正确的分支使用

git cherry-pick commithash

在您要将提交移至的分支中。

并从该分支中​​删除提交,使用

git reset --hard HEAD~1
于 2012-12-28T10:37:08.530 回答
0

git reset --soft HEAD^ 将修改后的更改保留在工作树中。

git reset --hard HEAD^ 取消提交您所做的所有更改。

于 2020-06-22T19:39:31.027 回答