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

如果我做 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的一部分,但它在Git-extra包中)具体用于逆转和排序旧命令:

git undo

对于男性页面,它也可以用作如下:

# Remove the latest three commits
git undo 3

其他回答

Rogue 编码器?

工作自己,只是想要它工作吗? 遵循下面的指示,他们已经为我和许多其他人工作了多年。

阅读下面的评论,考虑其他答案,并与你的团队讨论,在你做一些漏洞之前。

将工作复制转换为最新的承诺

要转向以前的承诺,忽略任何变化:

git reset --hard HEAD

在哪里,头部是您当前分支的最后承诺

将工作副本转换为老年委托

要转向比最近的承诺更古老的承诺:

# Resets index to former commit; replace '56e05fced' with your commit code
git reset 56e05fced 

# Moves pointer back to previous HEAD
git reset --soft HEAD@{1}

git commit -m "Revert to 56e05fced"

# Updates working copy to reflect the new commit
git reset --hard

# Push your changes to respective branch
git push -f

信用去一个类似的 Stack Overflow 问题,转向一个承诺由一个 SHA hash 在 Git?.

这是另一种方式直接重定向到最近的承诺。

git stash
git stash clear

它直接清除你自最后的承诺以来所做的所有变化。

PS:它有点问题;它还会删除你最近存储的所有存储变更,我猜在大多数情况下不重要。

最好的方式是:

git reset --hard <commidId> && git push --force

这将重新设置分支到具体的承诺,然后将远程服务器上传与您在当地的同样的承诺。

要小心 - 力量旗,因为它在选择的承诺后删除所有随后的承诺,而没有恢复它们的选项。

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

我不能用手动转换我的某种原因,所以这里是我如何完成的。

我检查了我想要的分支,复制了它,检查了最新的分支,复制了我想要的分支的内容到最新的分支目录,过写了变化,并承诺了这一点。