git笔记四

来源:互联网 发布:oracle查询不重复数据 编辑:程序博客网 时间:2024/06/10 08:40

git本质:管理修改

操作过程:第一次修改 -> git add -> 第二次修改 -> git commit
git commit -m "描述" 暂存区需要提交的文件名
Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别。
git中diff用法 
可以继续git add再git commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

撤销修改

$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
$ git reset HEAD readme.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,在没有推送到远程库的前提下,使用版本回退。

删除文件

在文件管理器中或者通过命令rm删除你项目文件(工作区)中的某个文件之后,如果确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit。
另一种情况是删错了,则用命令git checkout -- file把误删的文件恢复到最新版本。git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
注意:如果修改该文件后你还未提交就删除了,则无法恢复到修改之后的文件,因此在修改之后最好commit。
原创粉丝点击