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

如果我做 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 --hard [previous Commit SHA id here]
git push origin [branch Name] -f

它将取消您的前 Git 承诺。

如果你想保持你的变化,你也可以使用:

git reset --soft [previous Commit SHA id here]

然后,它会拯救你的变化。

其他回答

为了完全清理编码器的目录,我们使用了:

git add -A .
git reset --hard HEAD

只是 git reset --hard HEAD 会摆脱修改,但它不会摆脱“新”文件。在他们的情况下,他们偶然在某个地方随机拖动了一个重要的文件夹,所有这些文件都被 Git 处理为新的,所以一个 reset --hard 没有修复它。

逆转是命令返回承诺。

git revert <commit1> <commit2> 

样品:

git revert 2h3h23233

它可以从头像下面那样从头中取出范围,这里1说“回归最后的承诺”。

git revert HEAD~1..HEAD

然后做:

git push

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

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


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


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

您可以自行完成所有这些初步步骤,然后按一下返回 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

好吧,回到以前的承诺在Git是相当容易的......

返回,不遵守变更:

git reset --hard <commit>

返回,保持变更:

git reset --soft <commit>

解释:使用 git 重新设置,您可以重新设置到一个特定的状态。

但当你看到区别是使用两个旗帜 - 软和 - 硬,通过默认 git 重新设置使用 - 软旗,但这是一个很好的做法,总是使用旗帜,我解释每个旗帜:


默认旗帜如所述,不需要提供它,不改变工作树,但它添加了所有更改的文件准备承诺,所以你回到承诺状态,这些变更到文件失踪。


要小心这个旗帜,它恢复了工作树和跟踪的文件的所有变化,一切都将消失!


我还创建了下面的图像,这可能发生在与Git合作的现实生活中:

此分類上一篇