git基础--git是什么,基本命令
git是一个分布式的代码版本管理系统。有三个分区:
1.git仓库。2.工作目录。3.暂存区。
先配置你的信息,
git help config查看配置帮助
git --help查看帮助
配置信息:
$ git config --global user.name "erasec1994"
$ git config --global user.email 360495388@qq.com
表示往该仓库提交代码的人的信息,因为是分布式,所以有必要做区分。
(global表示无论在那里新建仓库,向仓库提交文件,都是以这个账户作为用户信息保存。)
$ git config -l 可以查看你的配置信息。l 表示list
也可以查看指定一项目:
$ git config user.name
$ git config -e 表示修改配置文件 git config --global表示全局
建立仓库:
到e:盘建立一个文件,作为本地的仓库。
mkdir test就可以在本地新建一个文件夹
cd test 进入当前目录中的文件夹test。
之后git init就可以得到一个新的git仓库。
(如果要回到上一层目录,cd .. 就可以了)
(ps:当然也可以从通过一个远程仓库地址,克隆到本地,从而得到一个git仓库)
(命令:git clone url 文件夹名。)
有了git仓库后,可以开始工作了!现在为git仓库目录中创建一个readme
(直接在git目录下新建即可!)
现在可以查看我git仓库的状态,是否多了一个文件
$ git status
on branch master在主分支上
untracked:表示是一个未被监视的文件。一般在本地git目录新创建的文件都是这个状态
untracked这个状态是最元素的状态,上面提示我们 git add file 添加到暂存区。
git add. 表示将该文件夹中的文件添加到暂存区,当然,也可以指定添加单个 git add file
changes to be committed表示在暂存区保存了该文件的提交状态,正待被提交commit。
$ git rm --cached readme.txt
可以看出,文件回到了之前的untracked 状态,表示在暂存区保存该文件快照。
在changes to be committed这个状态上,修改文件。下面出现了一个红色的文字 moffied。
上面开头说明changes not staged for commit表示文件已经被修改了,但没有加入暂存区(没有add)
如果现在进行commit 操作,表示只提交暂存区的,你后面更改的未提交,并不会被提交。
现在把修改后的也添加到暂存区,并提交,这样就完成了一次提交。
git commit -m "信息" -m表示message,表示这次提交了什么内容,为每次提交提供一个参考信息。
再回来看git status表示 没有东西可以提交,工作目录是干净的。
由于git status 提供的信息十分详细,所以有个命令,提供简要有效的信息
$ git status -s -s表示short
这里的两个问号??表示untracked file 前面有说明,一般新添加的文件都是这个状态,新来到git库的成员。
现在把add到暂存区,两个问号也变成了绿色的A,表示已添加到暂存区了。
现在,在已添加到暂存区上的文件修改一下(随便添加或删除什么都可以)
发现变成了AM,现在add . 添加到暂存区,并且commit提交。
提交后,可以看到,第一次git status没有变化,然后我修改了commit后的文件
会出现一个M,现在可以知道M就是修改过的,但是未被添加到暂存区。
当然,也需要git add . 变成状态A,再提交。
总结一下,有三个状态
??:表示新文件,未被跟踪。
A:表示已添加到暂存区
AM:表示添加到暂存区了,但是有个已修改的状态,如果这是进行提交,之后提交暂存区的快照,所以要注意。
M:单独的M,表示没有提交到暂存区,只是单纯的修改状态,需要提交到暂存区。
如果想知道具体修改了哪些地方,可以使用 git diff。
比较的是当前工作目录和暂存区的快照直接的差异。也就是已经提交的commit和暂存区的差异。
rm 文件名等同于手工在工作目录删除文件,会出现MD状态,M是修改,D是删除。
git rm 文件名 表示从暂存区中移除已经删除掉已经被删除的文件了,就不会在下次add的时候提交该文件的版本。
git rm --cache "文件名" 表示移除指定文件的暂存区状态,如果一个文件已经添加到暂存区了
git rm --cache就可以移除该文件在暂存区的快照,从而回到了untrack未被跟踪状态。