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


当前回答

获取上次提交的哈希码。 git日志 恢复提交 Git恢复<hash_code_from_git_log> 推动改变 git推

在GHR退房。你可能会得到任何你需要的,希望这是有用的

其他回答

获取上次提交的哈希码。 git日志 恢复提交 Git恢复<hash_code_from_git_log> 推动改变 git推

在GHR退房。你可能会得到任何你需要的,希望这是有用的

您可以使用以下工作流:

git reset --soft HEAD~1
git reset HEAD /path/to/file

如果你想从远程repo中删除文件,首先用——cache选项从项目中删除它,然后推送它:

git rm --cached /path/to/file
git commit -am "Remove file"
git push

(即使文件在一些提交之前添加到远程repo,也可以工作) 记得在.gitignore中添加你不想推送的文件扩展名。

将文件重置为正确的状态,提交并再次推送。

如果你确定还没有人获取你的更改,你可以在提交时使用——amend来修改你之前的提交(即重写历史),然后push。不过,我认为在push时必须使用-f选项来强制push。

使用 Git rm——缓存/路径/到/文件 然后添加、提交和推送。就像上面的答案,但你需要使用缓存而不是缓存。