Git撤销修改
Git概念
在说操作之前,先说明下Git
的工作区
、暂存区
和版本库
的概念。
这是菜鸟教程的图
- 工作区:就是在电脑里能看到的目录
- 暂存区:英文叫 stage 或 index,一般存放在
.git
目录下的 index 文件(.git/index)
中,所以我们把暂存区有时也叫作索引index
- 版本库:工作区有一个隐藏目录
.git
,这个不算工作区,而是 Git 的版本库. - 当对工作区修改(或新增)的文件执行
git add
命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的 一个新的对象中,而该对象的ID被记录在暂存区的文件索引中. - 当执行提交操作git commit时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新. 即 master 指向的目录树就是提交时暂存区的目录树.
撤销修改
撤销修改分为以下几种情况:
1.已经push
推送到远程仓库
2.已经commit
提交到版本库
3.已经add
提交到暂存区
4.暂未提交到暂存区,所有修改都在工作区
1.如果push
到远程仓库了,并且没有远程仓库的管理权限,那就放弃吧.
2.已经使用commit
提交到了版本库.
3.已经使用add
提交到暂存区,但是没有使用commit
提交到版本库.
4.文件修改都在工作区,没有提交到暂存区.
文件删除
文件删除其实也是一个修改动作,当使用rm
命令或者通过鼠标右击删除文件时,工作区就产生了修改.
这时候有两种选择:
1.确实要从版本库中删除该文件,使用命令git rm <file>
然后使用git commit进行提交. 工作区删除文件,后然后使用git add <file>
的效果和直接使用git rm <file>
的效果是一样的.
2.另一种情况是删除错了,这时候只要使用git checkout -- <file>
即可把误删的文件恢复到最新版本,最后一次提交后修改的内容会丢失. 从来没有被添加到版本库就被删除的文件,是无法恢复的!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 呆鱼!
评论
TwikooLivere