我如何从我目前的状态转向在某个承诺上拍摄的截图?

如果我做 git 登录,那么我会得到以下输出:

$ 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.

我如何转向11月3日的承诺,即承诺0d1d7fc?


当前回答

选择您所需的承诺,并通过

git show HEAD
git show HEAD~1
git show HEAD~2 

直到你得到所需的承诺. 要使头点到这一点,做

git reset --hard HEAD~1

或 git reset --hard HEAD~2 或任何东西。

其他回答

我相信有些人可能来到这个问题,想知道如何回归他们在主人中所做的承诺的变化 - 也就是说,把一切都扔掉,回到起源 / 主人,在这种情况下,这样做:

git reset --hard origin/master

https://superuser.com/questions/273172/how-to-reset-master-to-origin-master

可以用 Sourcetree 做得更容易。 只需正确点击承诺,您正在寻找并从菜单中选择“检查”。

此分類上一篇

想法:基本上你想用以前的承诺取代当前的工作树状态,然后从中创建承诺。

将工作树 *. git rm -r --cached. && git clean -f -d 将工作树带到我们想要的状态 **. git checkout 0d1d7fc3. 创建逆转承诺. git add --all & git commit -m "revert to 0d1d7fc3"


此外,它不会从历史中删除任何东西(压抑或压抑),它产生一个纯粹的承诺,代表我们想要回归的状态。


**当路径被指定(在这里: )时,支票单独留下头部。

回到最近的承诺和忽略所有的地方变革:

git reset --hard HEAD

重新定位的变革和承诺

Git 的能力正如你想要的那样创作承诺,这意味着有时你需要在 git 添加中进行的更改中取消更改。

Git 不知道这些变化,因为它们从未被承诺,一旦你运行这个命令,就没有办法恢复这些变化。

最后,您可以使用 --mixed 重新设置工作树,而无需排序任何变更。

回归承诺

你可以使用 -no-commit,或者你可以使用 -n 告诉 Git 进行逆转,但停止承诺改变。

否则,您可能会通过尝试转换尚未存在的代码来混淆 Git。