git rm/reset/checkout使用说明
2016-07-25 23:47
344 查看
一、git rm/checkout
当未在.gitignore文件中设置不需要跟踪的文件类型时,在使用
git add .命令时,会把工程中所有未跟踪的文件添加到git索引中,如果此时意识到有些文件不需要commit时,可以把文件从索引中删除:
git rm --cached + 文件名
或者
git reset HEAD + 文件名
在索引中删除后,该文件在工作目录中依然存在。
注意:
1. 在未执行
git commit前,若直接使用
git rm + 文件名,则同时会把文件从索引和工作目录中删除,且工作目录中的文件无法恢复。
2. 在执行
git commit后,若直接使用
git rm + 文件名,虽然同时会把文件从索引和工作目录中删除,但是工作目录中的文件可以被恢复,可通过如下命令:
git checkout HEAD -- + 文件名
二、git reset
该命令的作用为修改
git本地提交历史
。
git reset选项的影响:选项 | HEAD | 索引 | 工作目录 |
---|---|---|---|
–soft | 是 | 否 | 否 |
–mixed | 是 | 是 | 否 |
–hard | 是 | 是 | 是 |
例如:提交历史为A—>B,在本地修改代码后commit提交,则提交历史变为A—>B—>C,此时发现修改的代码有误,但是又改动了很多地方,不想一 一找了,此时有一个简单的方法把提交历史退回到B,使用如下命令即可:
git reset --hard B
此时,HEAD指针,索引,工作目录中的文件状态都会变成提交B时的状态,提交C的所有状态完全丢失。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- git多账号登录问题解析
- Ruby实现的删除已经合并的git分支脚本分享
- 在 Shell 提示符中显示 Git 分支名称的方法
- Git使用基础篇(一些常用命令和原理)
- git 使用及常用命令
- Git 常用命令整理
- git eclipse 插件的安装
- git fork同步是什么意思?
- Git使用小坑 Out of memory错误的解决方法
- Python的高级Git库 Gittle