【问题标题】:Revert committed files to their version in master?将提交的文件恢复到它们在 master 中的版本?
【发布时间】:2019-08-25 10:37:28
【问题描述】:

我修改了一些文件并提交了我的更改。

我注意到有 3 个文件我不应该修改,我希望它们恢复到原来的状态,但我不想重置为以前的提交,因为我没有'不希望我的其他文件更改丢失。我该如何做到这一点?

【问题讨论】:

    标签: git git-revert


    【解决方案1】:

    如果您还没有推送,那么您的提交现在只是本地的,那么一个简单的过程就是

    # restore these 3 files to their previous state
    git checkout HEAD^ -- path/to/file1 path/to/file2 path/to/file3
    
    # include these changes...
    git add path/to/file1 path/to/file2 path/to/file3
    
    # ... in last commit
    git commit --amend
    

    但是,如果您已经推送,则有两种基本情况:

    1) 要么您单独处理此存储库,或者共享存储库但单独处理此分支(功能分支通常是这种情况,但取决于您的工作流程)

    上面的过程很好,只是要注意下次你要推送到远程时,你必须在你的推送命令中使用-f标志来强制更新旧的参考。

    2) 这是一个共享分支,它的历史不能轻易改变

    那么上面的过程,重写历史,是要避免的。相反,您只需在最后省略 --amend 参数,它就会进行新的提交,其中仅包含文件的最后一次修改。不如一开始就提交它那么优雅,但您没有更改历史记录并且您的文件很好。

    【讨论】:

      猜你喜欢
      • 2017-09-18
      • 2012-11-09
      • 2015-01-03
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2013-06-26
      • 2022-07-19
      • 1970-01-01
      相关资源
      最近更新 更多