git - 如何使用 git 取消提交更改

标签 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.
}

最佳答案

如果您尚未发布更改,最简单的方法是终止 branch1 中的最后一次提交(注意:这将完全终止最后一次提交引入的任何内容):

git checkout branch1
git reset --hard HEAD~

然后 checkout 到正确的分支并在那里提交您的更改。

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

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

git revert <bad_commit>

并在正确的分支中重做。

关于git - 如何使用 git 取消提交更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068126/

相关文章:

git - LightSwitch 项目 : Which files to check in, 和忽略哪个?

git - 使用 Xcode4 git 与 git-flow 的集成

git流 : Should I squash commits when merging from a release branch into master?

git - 请求的 URL 返回错误 : 502 when running git clone inside a Docker container

svn - 将分支合并到主干的颠覆最佳实践,其中分支中的文件结构已被修改

git - 用于锁定 Azure git 中的分支的 API

.net - 针对多个 .NET 版本构建系统

Gitflow + Forking 工作流程(在 Stash 上)?

git - 在已推送的 Git 中编辑不正确的提交消息

git - 如何将所有当前未跟踪的文件/文件夹添加到 git ignore?