git

新建git本地仓库: git init 新建一个.git文件,有这个文件就是一个git仓库

git本地仓库分三个区来区别操作(这个思路太重要了): 工作区: 就是一个多了.git文件的文件夹,不要想太多,就按Linux操作文件夹的方法正常操作 暂存区: 暂时讲了两种操作暂存区的方法: 1.存入暂存区 git add filename git rm filename 这两条都是修改暂存区 2.递交暂存区 git commit -m "log" 别忘了正常来说一般对暂存区修改以后一定要commit一下
版本库:git commit以后的最终版本存入地方,git最重要的一个地方,因为只有版本库的修改才可以跟踪

另外有几个命令查看状态也很重要: git status 查看当前git仓库与上一次commit之后的版本库的一切修改,包括工作区的修改和暂存区的修改(这种信息是不详细的) 很人性化的是,git status会提示你下一步可能会做的事,比如你对工作区做了修改,他可能会提示下一步要git add或者git checkout < filename >, 你刚执行完git add以后,git status跟踪的暂存区的修改,他又会提示你下一步可能要提交git commit或者git reset HEAD < filename > git diff:这个命令返回的是你对工作区的修改,别想太多,和什么对比并不重要,你只要知道什么时候他会有信息返回,返回什么信息!什么时候有返回呢!你对工作区已经存在的文件修改(但是没有存入暂存区,也就是说没有git add或者git rm,所以一定要纠结的话,他比较的的确是暂存区和工作区的区别)的话有返回(新建文件git diff看不到),返回什么,返回修改的详细信息,+是新添的行-是删去的行 git diff --cached:这个命令是查看你对暂存区的修改,也就是你git add或者git rm以后,git diff的返回信息就用git diff --cached来用了(这也是为什么这两个命令一样,只有参数不一样的原因,因为其实干的都是一件事,只是git diff针对的对象是工作区,git diff --cached针对的对象是暂存区) git log:当前版本之前的commit日志记录,也就是说当前版本是回退回来的版本的话,当前版本之后的提交与回退都看不到(有个很重要的commit ID) git reflog:包括版本回退、版本提交的日志,信息教git log会比较简单 这样把命令的针对对象分为三个区来理解,现在看撤销操作就很容易了: 1.针对工作区的撤销(必须保证没有git add/git rm之前): git checkout -- filename 2.针对暂存区的撤销(必须是git add/git rm以后才行) git reset HEAD filename 顺便想起git reset的另一种用法,参数不一样啦,那肯定也是撤销操作,当然就是撤销提交,回退版本啦 git reset --hard (HEAD^^^^)/commit id 哦了,之前的信息全穿起来了!!!