繁体   English   中英

如何将不良更改回滚到本地git存储库?

[英]How can I roll back bad changes to a local git repository?

我是git的新手,我遇到了一个大问题。 即如果我做错了,如何将存储库恢复到良好状态。 我已经看到如何使用'git revert'进行更改以撤消之前的更改,我已经阅读了很多关于stackoverflow和相关位置的问题,但我还没有找到一个简单的方法来简单地说“把我的本地存储库位回到它之前我做X的“其中X可能是提交,合并或其他存储库操作。

很长的故事:

今天,当我尝试按照关于子树合并的ProGit书中的步骤为第三方依赖项(Jasmine)设置子树分支时,这一点特别困难。 我按照这些步骤设置了一个本地存储库,其中包含一个跟踪远程Jasmine存储库的分支。 然后我使用read-tree将它连接到我的probject中的子目录,一切都很好。 不幸的是,Jasmine分支包含一个非公共URL的子模块引用,当我尝试解决这个问题时,我在跟踪远程存储库的分支上进行了更改(和提交)。 无论我做了什么来试图恢复这些提交/更改,我的'git push'命令都不能再工作了,因为存储库认为我对Jasmine代码进行了更改,并试图将它们推回到我正在跟踪的公共URL 。

简介:在我发出由我的git newbie status导致的命令之前,我搞砸了部分存储库并无法弄清楚如何将其恢复到原始状态。

无论如何要回滚整个存储库的一些提交/更改,还是我只需要再次克隆它并在发生这种情况时重新开始?

使用git-reflog

git reflog

找到要返回的修订版本

git reset HEAD@{n}

(用正确的数字代替n)

如果你有不干净的工作树,也许git reset --hard 要小心,因为那些不可恢复)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM