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

如果我做 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 reset <SHA>

如果不需要从前的承诺到主,并只是拒绝所有变更,做:

git reset --hard <SHA>

其他回答

在所有更改之后,当您按下所有这些命令时,您可能需要使用:

git push -f ...

不仅仅是Git Push。

如果你想“不承诺”,删除最后的承诺消息,并将修改的文件重新排序,你会使用命令:

git reset --soft HEAD~1

--soft 表明未订购的文件应该作为工作文件相反的 --hard 将排除它们. HEAD~1 是最后的订单. 如果你想旋转 3 订单,你可以使用 HEAD~3. 如果你想旋转到一个特定的修订号码,你也可以这样做,使用它的 SHA 标签。

这是一个非常有用的命令,在你犯了错误的事情的情况下,你想放弃最后的承诺。

来源: http://nakkaya.com/2009/09/24/git-delete-last-commit/

要保持以前的承诺转向主,并转向以前的承诺,做:

git reset <SHA>

如果不需要从前的承诺到主,并只是拒绝所有变更,做:

git reset --hard <SHA>

我发现最不复杂的方式,把一个分支转向任何特定的承诺,在那里你不能改变历史,就是:

查看承诺或分支您的愿望转向. 编辑.git/HEAD 并更改转向您转向的分支。

如如:

echo 'ref: refs/heads/example' > .git/HEAD

如果你做 git 状态,你应该看到你所在的分支和你想转向的分支之间的所有变化。

如果一切都看起来很好,你可以承诺. 你也可以使用 git diff revert..example 确保它是相同的。

您可以自行完成所有这些初步步骤,然后按一下返回 Git 存储库。

使用 git pull --all 命令从 Bitbucket 播放您的存储库的最新版本. 从您的终端运行 Git 存储库命令 -n 4 之后的号码决定从您本地历史上最新的存储库中的订单数量. $ git 存储库 -n 4 使用 git reset --hard HEAD~N 重新设置存储库历史的头,在那里 N 是订单数量

如果您想要 Git 存储库到以前的承诺:-

git pull --all
git reset --hard HEAD~1
git push --force