git

新建git本地仓库

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

git本地仓库

分三个区来区别操作:

  1. 工作区: 就是一个多了.git文件的文件夹,不要想太多,就按Linux操作文件夹的方法正常操作
  2. 暂存区: 暂时讲两种操作暂存区的方法:
    1. 存入暂存区:git add filenamegit rm filename 这两条都是修改暂存区
    2. 递交暂存区:git commit -m "log" 正常来说一般对暂存区修改以后一定要commit一下
  3. 版本库: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^^^^)/git reset --hard commit id 哦了,之前的信息全穿起来了!!!
posted @ 2020-01-04 15:27  yifeichong  阅读(157)  评论(0编辑  收藏  举报