如何从当前状态恢复为在某个提交时创建的快照?
如果我这样做git log,那么我得到以下输出:
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
blah blah blah...
commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date: Thu Nov 4 05:13:39 2010 -0400
more blah blah blah...
commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date: Thu Nov 4 00:55:06 2010 -0400
And yet more blah blah...
commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date: Wed Nov 3 23:56:08 2010 -0400
Yep, more blah blah.
Run Code Online (Sandbox Code Playgroud)
如何从11月3日恢复提交,即提交0d1d7fc?
虽然我经常使用Git,但我还是初学者.
有时,我犯了一个错误,但只有在我提交之后才发现它.在那时,我通常不得不花费很长时间在互联网上寻找我应该用来摆脱它的命令(在推送之前).
每当发生这种情况时,我发现自己想知道我经常遇到的四个术语之间的区别是什么:
我认为现在是时候一劳永逸地学习这些差异了.这些是什么?
这必须简单,但我找不到它git-scm.
我一直在为公共项目做很多小提交,而且我的所有工作都很糟糕.我想删除我所做的一切.有些我刚刚在当地做过,有些我已经推到了'原始大师'.
第一次提交(一周前)是bdbad86......最近的提交是e82401b......
我想让所有这些消失.我试图还原一个.
git status
# On branch master
# You are currently reverting commit e82401b.
# (all conflicts fixed: run "git revert --continue")
# (use "git revert --abort" to cancel the revert operation)
Run Code Online (Sandbox Code Playgroud)
我搞砸了我的应用程序,最后做了一个
git checkout <commit number>
Run Code Online (Sandbox Code Playgroud)
回到我想去的地方。
当我做一个 git status 时,它说
Your branch is behind 'origin/master' by 5 commits, and can be fast-forwarded.
Run Code Online (Sandbox Code Playgroud)
我想我是最近一次提交的第 5 次。有没有办法让我最近提交的第 5 个提交成为我最近提交的第 5 个?几乎覆盖或丢弃我前四个提交中的所有内容?
更新。
我做了一个
git reset --hard <commit number>
Run Code Online (Sandbox Code Playgroud)
但是如何推送到我的存储库?它说...
To prevent you from losing history, non-fast-forward updates were rejected
Run Code Online (Sandbox Code Playgroud)
我不想执行合并,我非常想清除我最近的 4 次提交
谢谢
我不小心将另一个存储库克隆(或拉了,我不记得了)到我的项目存储库中,现在我看到从 2011 年开始有超过 1500 个外部提交。我不知道如何简单地恢复它,因为这些提交已编入我的提交中。
\n\n好消息是我还没有推动它,但我的工作中有一些变化我想保留。我怎样才能做到这一点?
\n\n@edit\n接受的答案不会保留我的工作,但可以通过以下步骤简单地解决:将修改后的文件移动到某个安全的地方 \xe2\x86\x92 恢复 \xe2\x86\x92 将它们移回恢复状态repo \xe2\x86\x92 对它们进行新的提交。
\n如何将 Github 上的 Github 存储库恢复到之前的状态?
我做了一些更改并将它们提交到 github,但现在我想在 github 上撤消这些更改。我该怎么做呢?
我尝试这样做,git reset --hard 7727c5bfa99
但这只更改了我计算机上的存储库,而不是 github 网站上的存储库