在Git中是否有可能恢复已提交的文件?我已经将一个提交到GitHub,然后我意识到有一个文件我不想被推送(我还没有完成更改)。
当前回答
只能将一个文件恢复到指定的修订版本。
首先,您可以检查哪些提交文件被更改。
git log path/to/file.txt
然后您可以用修订号签出该文件。
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
之后,您可以提交并再次推送它。
其他回答
获取上次提交的哈希码。 git日志 恢复提交 Git恢复<hash_code_from_git_log> 推动改变 git推
在GHR退房。你可能会得到任何你需要的,希望这是有用的
更新:增加了更安全的方法
首选的方法:
检查出文件的先前(未更改的)状态;注意双破折号 git checkout HEAD^——/path/to/file 提交: Git commit -am“恢复该文件上的更改,尚未完成” 推它,不需要用力: git推 回到你未完成的工作,再次做(3次箭头向上): git checkout HEAD^——/path/to/file
有效地“uncommitting”:
修改存储库HEAD的最后一次提交,混淆你意外推送的工作,同时可能会与你的同事发生冲突,他可能已经拉了它,他会变得灰白,并浪费大量时间试图调和他的本地分支HEAD与中央分支HEAD:
删除上次提交的文件更改:
要将文件恢复到上次提交之前的状态,请执行以下操作: git checkout HEAD^ /path/to/file 要用恢复后的文件更新上次提交,请执行以下操作: Git提交—修改 要将更新后的提交推入回购,请执行以下操作: Git push -f
实际上,可以考虑使用前面提到的首选方法。
只能将一个文件恢复到指定的修订版本。
首先,您可以检查哪些提交文件被更改。
git log path/to/file.txt
然后您可以用修订号签出该文件。
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
之后,您可以提交并再次推送它。
使用 Git rm——缓存/路径/到/文件 然后添加、提交和推送。就像上面的答案,但你需要使用缓存而不是缓存。
我遵循这些步骤[它经常发生在我,特别是在节点模块文件夹]
1-去日志
2- git 还原 04409a858709c82fbf9eae7559d6ae9c34b6fbe6
换一个你承诺的号码
<它将是像04409a858709c82fbf9eae7559d6ae9c34b6fbe6>这样的长数字
3-git推
这对我来说很有效,但请记住,这里有一个技巧,你的第一个提交将是列表中的最后一个,所以请检查日期和提交消息。
从我的终端查看这张图片
推荐文章
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- 在另一个目录中运行操作
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌