如何“时间旅行”git 存储库重新修订?

use*_*448 4 git version-control revision bitbucket

是否可以将 git 存储库完全还原到 bitbucket 上的先前 X 修订版,以便在该 X 修订版之后不保留任何更改,并且不包含比 X 修订版更新的任何源代码更改。

例如,如果 repo 中有 1,2,3,4,5 修订版,我想恢复到修订版 3,以便它是最后一次修订版,并完全消除修订版 4 和 5 的任何痕迹,就好像它们从未被制作过一样并且无法检索。

rah*_*hra 5

是的,您可以通过多种方式执行此操作:

1)您可以指定时间,如 10.minutes.ago、1.hours.ago、1.days.ago ...

例如:如果你想回到5 天前的 master 分支 git reset --hard master@{5.days.ago}

2)如果你知道提交哈希,那么你可以直接回到它 git reset --hard <commit_hash>

谢谢!


sp0*_*0gg 2

您可以在本地克隆存储库,git reset --hard <commit 3>然后git push -f备份到远程。您需要对所有分支机构执行此操作。

使用推送时您还应该非常小心-f- 确保推送到正确的存储库/分支。

这将重写远程存储库的历史记录,因此您应该通知此存储库的任何其他使用者将会发生冲突。

在这里阅读更多内容:https ://git-scm.com/docs/git-push#git-push---force