GIT:如何只恢复一个历史变化,同时保持其他历史变化?

标签 git github git-svn

假设我已经为我的项目进行了 N 次更改和提交。

之后突然发现N个改动中的一个改动导致了一个无法解决的问题。解决这个问题的唯一方法是恢复那个特定的变化,同时,我需要保留所有其他变化(包括这个有问题的变化之前的变化和之后的变化这个有问题的变化)就像现在一样。

如何在 GIT 中解决这个问题?我的意思是如何只恢复一个历史变化并保留它之前和之后的所有其他变化

最佳答案

Git 社区书籍对这类事情很有帮助。与您相关的部分是 here .

最安全的选择是使用

$ git revert <commit-hash>

并解决任何冲突。您可以使用 git rebase 来执行此操作,但它会重写历史,并且在已经推送或公开的存储库中是非常灾难性的。此外,您可能希望保留显示您已进行更改并且必须将其更改回来的历史记录。从长远来看,它的信息量更大。

关于GIT:如何只恢复一个历史变化,同时保持其他历史变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901605/

相关文章:

git - Git 是否需要集中式服务器?

使用密码@进行Git克隆

git - 我怎样才能找到我的 git 分支将提交到哪个 SVN 分支?

mercurial - 无法将 Git 存储库转换为 Mercurial

git - 如何在所有分支上运行 git svn rebase

bitbucket - Git - 致命的 : Unable to create '/path/my_project/.git/index.lock' : No such file or directory read tree xxxx command returned error: 128

git - Jenkins GIT 包括从不构建的区域

git - 我如何找出哪个 Git 提交导致冲突?

ruby - 连接拒绝来自 Ruby 的 Git

git - 如何将 "git push"转到私有(private)存储库并提示输入用户名和密码?