【问题标题】:Tortoise Git - 'Reset "master" to this' doesn't do the jobTortoise Git - '将“主人”重置为此'不起作用
【发布时间】:2019-05-24 14:06:05
【问题描述】:

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

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

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

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

这个任务过去使用 Subversion 很简单(虽然,并没有完全删除一堆提交,只是恢复到之前的提交,除非你选择了之前的提交,否则不会显示在 Tortoise Git 菜单中,即,在大多数之前最近)。

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

【问题讨论】:

  • ...所有后来的提交确实都消失了。然后你应该做一个git push -f重写遥控器,或者我们说,“同步”这个编辑。
  • @GenoChen:谢谢,但我试过了;收到一条错误消息,说我需要先拉,因为我没有指向最新的。然后,拉动之后,一切又回到了原来的位置。
  • 您是否添加了-f--force 参数?
  • @GenoChen:通过 Tortoise 进行,所以不记得看到过这样的选项,但会再试一次;请一秒钟...
  • 那我想知道当你准备推送时是否有一个复选框说“强制推送”之类的...

标签: git tortoisegit git-revert


【解决方案1】:

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

即点击该选项时不会进行远程操作。这是 Git 和 SVN 的一个基本区别:Git 做了很多本地操作,只需要在需要的时候进行远程操作,而 SVN 中的所有操作都需要远程操作。

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

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

【讨论】:

    【解决方案2】:

    强制远程更新是一种危险的操作,甚至可能是不允许的。
    例如。我在 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. 根据回购设置,必须有人批准。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多