我正在使用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.
}
答案 0 :(得分:5)
如果您尚未发布更改,最简单的方法是终止branch1
中的最后一次提交(注意:这将完全杀死最后一次提交引入的任何内容):
git checkout branch1
git reset --hard HEAD~
然后结帐以更正分支并在那里提交更改。
如果您已发布更改,您仍然可以终止上次提交,但是您必须git push --force
,您可能无权执行此操作,即使您这样做,也可能会导致很多悲伤对于此存储库的其他用户。
相反,你应该简单地恢复糟糕的变化:
git revert <bad_commit>
并在正确的分支中重做。
答案 1 :(得分:1)
将提交移动到右分支使用
git cherry-pick commithash
在要移动的分支中提交。
并从该分支中删除提交 使用
git reset --hard HEAD~1
答案 2 :(得分:0)
git reset --soft HEAD ^将修改后的更改保留在工作树中。
git reset --hard HEAD ^取消提交所做的所有更改。