如何使用git取消提交更改

Dan*_*ies 4 git version-control git-flow

我正在使用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.
}
Run Code Online (Sandbox Code Playgroud)

mvp*_*mvp 5

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

git checkout branch1
git reset --hard HEAD~
Run Code Online (Sandbox Code Playgroud)

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

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

相反,你应该简单地恢复糟糕的变化:

git revert <bad_commit>
Run Code Online (Sandbox Code Playgroud)

并在正确的分支中重做它.