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

标签 git github

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

最佳答案

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

首选方法:

  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
    

有效地“取消 promise ”:

要修改存储库 HEAD 的最后一次提交,混淆你不小心推送的工作,同时可能与你的同事发生冲突,他可能已经 pull 了它,并且谁会长出白发并浪费很多时间来调和他的地方分支机构负责人与中央分支机构负责人:

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

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

    git checkout HEAD^ /path/to/file
    
  2. 要用还原的文件更新最后一次提交,请执行:

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

    git push -f
    

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

关于Git:推送后删除提交的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18357511/

相关文章:

github - 如何显示github README.md中的HTML内容?

windows - git checkout (Windows 10/mingw64) 错误 "no such file or directory"

php - Composer VCS 不同的目录名称

javascript - 有没有办法在脚本标签中嵌入 Github 托管的 javascript?

git - 如何从 Android Studio 项目中删除 Git?

git - 推送大型 github 存储库失败并显示 "unable to push to unqualified destination: master"

git - 将 rsa key 添加到系统

git - 如何一次 rebase 多个分支(具有相同的基提交)?

git - 为什么我的 'git branch'没有master?

git - 存储库不干净