git - git checkout 不撤消提交的文件
问题描述
我已经编辑、添加和提交了一些文件。当我运行时:
git diff --stat --cached origin/development
其中一个文件不应该被更改,我想撤消对该文件的更改。
根据下图,我运行:
git checkout file_name
但:
git difftool --cached origin/development
仍然显示文件包含更改。
如何撤消对一个文件的更改以及为什么git checkout
不起作用?
解决方案
我想你在这里git diff
感到困惑git show
。
你还没有提交,也没有进行任何更改
利用git checkout your-file
您尚未提交,但您已经进行了更改
利用git reset HEAD your-file
你已经提交了
确保您没有任何待处理的更改(存储或丢弃它们),然后复制您的提交哈希(参见 COMMIT_HASH):
git reset HEAD~1
git checkout your-file
git add your-other-file ...
git commit -c COMMIT_HASH
注意:这假设提交是您分支的顶部
如果您的提交不是您分支的顶部,我建议您熟悉交互式变基,当且仅当您不接触公共分支时。即不要改写公共历史。
推荐阅读
- python - 如何阻止我的 Runge-Kutta2 (Heun) 方法爆炸?
- python - Python PyQt5 创建布局
- faunadb - 我怎样才能获得动物数据库文档的更改历史记录?
- excel - 将特定列从一个 Excel 工作表复制到另一个工作表
- variables - 为什么这会无缘无故地忽略我的变量?
- python - 使用可变默认参数,如何从函数外部访问对象?
- android - ExoPlayer 通知管理器,隐藏快退和快进按钮
- android - ItemTouchHelper.SimpleCallback 以编程方式滑动
- python - 使用 numpy.dot(m1, m2) 与 m1.dot(m2) 的矩阵乘法之间的差异
- amazon-web-services - 在 AWS ECS 上的 Docker 映像中运行 CloudWatch 代理失败