git - Git revert 无法恢复已删除的文件
问题描述
我有一系列提交
A --> B --> A'
提交B
中的更改将执行git rm myfile
并添加myfile
到.gitignore
. 然后我将提交推B
送到远程。但是我意识到我忘记添加--cached
选项了git rm
,所以myfile
实际上是从我的本地存储库中删除的,而我只是想停止跟踪它并从远程删除它。
为了解决这个问题,我做了 commit A'
,这不过是一个git revert HEAD~
,恢复到A
. 它成功恢复到A
. 但myfile
没有再出现。
如果我这样做,git ls-tree A
那么myfile
就在那里,但如果我这样做,git ls-tree A'
那么myfile
就不在那里。到底是怎么回事?
解决方案
如果您只想myfile
从提交中获取文件A
到磁盘:
git show A:myfile > myfile
# or :
git restore --worktree -s A -- myfile
推荐阅读
- nginx - APP_PROTECT 获取编译状态失败
- typescript - 如何对组件的通用 props 进行分区并强类型化结果
- flutter - 如何更改 image_picker 文件名
- api - 记录 PowerPoint 幻灯片时间
- bash - 我可以让 curl 使用代理而不更改其命令行参数吗?
- python - Python:动态处理不同的日期时间格式
- r - 计算报告进口商/出口商之间的价值差距 [R}
- excel - 将关闭的工作簿中的整列复制到打开的工作簿中
- c++ - 如何修复 IDA pro call analysis failed 错误?
- sympy - 有没有办法使用 SymPy 来解决这个问题?