从本地删除不需要的文件并反向提交/合并

这个问题在这里已经有了答案:

  • 如何将Git存储库恢复到以前的提交? 38个答案

  • 正如我在评论中已经指出的那样,您的问题基本上是如何将Git存储库恢复到之前的提交的副本,其中最高投票答案提供了与您相关的两个解决方案。

    解决方案1:硬重置

    你提到你已经推到你的遥控器。 没关系,如果你没有与其他人分享你的分支,那么你可以简单地重新执行一次硬复位,恢复到你想要恢复的提交,然后强制推回到你的远程:

    git reset --hard sha-2
    git push origin HEAD -f
    

    警告:如果你与其他人共享你的分支 ,或者至少如果你不愿意与他们分享你的分支,就不要这样做,如果你这样扔掉远程分支上的提交。 那些其他人可能会根据您丢弃的旧提交进行自己的工作,因此它会为这些用户创建更多工作,以便与新设置的分支重新同步自己的提交。

    如果您因为上述原因而无法使用此解决方案,那么您可以使用以下备用解决方案,如如何将Git存储库恢复到以前的提交中所述。

    解决方案2:恢复

    该解决方案通过创建反向修补的新提交简单地恢复先前的提交。 即使其他用户共享您的分支,这也是安全的,因为它不会丢弃新的提交,它只是创建新的提交,所以它没有像同步抛出一样令人困惑,因为丢掉提交会是:

    git revert --no-edit sha2..sha5
    

    这将恢复范围(sha2,sha5)中的提交,其中sha2是独占起点,这意味着它不包含在回复中,然后您可以将结果推送到远程,

    git push origin HEAD
    

    文档

  • 官方git-reset(1)手册页
  • 官方git-revert(1)手册页
  • 补充笔记

    我想有这样的疑问停课时如何恢复Git仓库到以前犯重复?,但它看起来像这个问题没有得到足够接近的选票,可能不被关闭,所以这就是为什么我决定我更好的答案它只是万一它不是。


    尝试使用:

    git reset --hard <previous-commit-hash>
    

    这会将所有内容重置为您之前的提交。 你会得到你previous-commit-hash的新副本。

    链接地址: http://www.djcxy.com/p/3155.html

    上一篇: Removing unwanted files from local and reverse commit/merge

    下一篇: Reset Git Branch to last commit? Rails