Git - "重置"master""不起作用



我正在尝试将我的存储库倒回一些提交。

打开提交日志后,我选择要倒退到的提交,然后选择 Reset "master" to this... ,然后Hard: Reset working tree and index

再次打开日志时,所有以后的提交确实都消失了。

但是当我从干净状态中提取存储库时,它们又回到了那里。

这个任务在 Subversion 中曾经很简单(虽然,没有完全删除一堆提交,只是恢复到以前的提交,除非你选择上一个提交,即最近的一个提交,否则它不会显示在 Tortoise Git 菜单中)。

知道如何实现我的目标吗?

菜单Reset "master"仅表示"重置本地主节点",而不是远程主节点。

也就是说,单击此选项时不会发生远程操作。这是 Git 和 SVN 之间的基本区别:Git 做很多本地操作,只是在需要时做远程操作,但 SVN 中的所有操作都是远程需要的。

要更新,或者我们说同步重置的修改,只需执行git push -f以强制重写遥控器。

警告:检查两次,确保在执行git push -f之前清楚自己在做什么,否则您可能会丢失必要的工作。

强制远程更新是一项有风险的操作,甚至可能不允许。
例如,我在 GitHub 上收到

remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Cannot force-push to this protected branch

https://github.com/hexojs/hexo/issues/2817#issuecomment-432715832 更好的建议:

1. 创建一个新分支,
2. 将代码提交到分支
3. 并执行拉取请求。
4.根据存储库设置,必须有人批准它。

最新更新