在Git中是否有可能恢复已提交的文件?我已经将一个提交到GitHub,然后我意识到有一个文件我不想被推送(我还没有完成更改)。
当前回答
您可以使用以下工作流:
git reset --soft HEAD~1
git reset HEAD /path/to/file
其他回答
您可以使用以下工作流:
git reset --soft HEAD~1
git reset HEAD /path/to/file
将文件重置为正确的状态,提交并再次推送。
如果你确定还没有人获取你的更改,你可以在提交时使用——amend来修改你之前的提交(即重写历史),然后push。不过,我认为在push时必须使用-f选项来强制push。
获取上次提交的哈希码。 git日志 恢复提交 Git恢复<hash_code_from_git_log> 推动改变 git推
在GHR退房。你可能会得到任何你需要的,希望这是有用的
如果你想从远程repo中删除文件,首先用——cache选项从项目中删除它,然后推送它:
git rm --cached /path/to/file
git commit -am "Remove file"
git push
(即使文件在一些提交之前添加到远程repo,也可以工作) 记得在.gitignore中添加你不想推送的文件扩展名。
只能将一个文件恢复到指定的修订版本。
首先,您可以检查哪些提交文件被更改。
git log path/to/file.txt
然后您可以用修订号签出该文件。
git checkout 3cdc61015724f9965575ba954c8cd4232c8b42e4 /path/to/file.txt
之后,您可以提交并再次推送它。
推荐文章
- 是否有一个链接到GitHub下载文件的最新版本的存储库?
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- Github:我能看到回购的下载数量吗?
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 如何运行一个github-actions步骤,即使前一步失败,同时仍然失败的工作
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 在GitHub repo上显示Jenkins构建的当前状态