小编典典

Git:推送后删除提交的文件

all

是否有可能在 Git 中恢复已提交的文件?我已经向 GitHub 推送了一个提交,然后我意识到有一个我不想被推送的文件(我还没有完成更改)。


阅读 69

收藏
2022-07-28

共1个答案

小编典典

更新:添加了更安全的方法

首选方法:

  1. 检查文件的先前(未更改)状态;注意双破折号

    git checkout HEAD^ -- /path/to/file
    
  2. 提交它:

    git commit -am "revert changes on this file, not finished with it yet"
    
  3. 推动它,无需用力:

    git push
    
  4. 回到你未完成的工作,再次做(3次箭头向上):

    git checkout HEAD^ -- /path/to/file
    

有效地“取消承诺”:

修改存储库 HEAD
的最后一次提交,混淆你不小心推送的工作,同时可能会与你的同事发生冲突,他可能已经拉过它,并且会长出白发并浪费大量时间来协调他的本地分支负责人与中央:

要从上次提交中删除文件更改:

  1. 要将文件恢复到上次提交之前的状态,请执行以下操作:

    git checkout HEAD^ /path/to/file
    
  2. 要使用恢复的文件更新最后一次提交,请执行以下操作:

    git commit --amend
    
  3. 要将更新的提交推送到 repo,请执行以下操作:

    git push -f
    

真的,考虑使用前面提到的首选方法。

2022-07-28