Git学习笔记
前言
git作为世界上最先进的分布式版本控制系统,为我们管理自己的代码提供了很多便利,它的指令强大且复杂多样,而我一直都只用着git add、git push等最简单的指令,十分惭愧。希望这篇笔记能帮助我之后的git学习,也帮助到有需要的同学。
配置git
1  | #查看版本信息  | 
新建仓库
1  | #在指定目录初始化仓库,会创建一个.git隐藏文件夹,默认在当前目录下初始化仓库  | 
增加和删除文件
1  | #添加文件到暂存区,参数是一个.或-A的话为添加所有文件  | 
提交修改
1  | #提交暂存区到仓库区,message用于描述这次提交  | 
分支
1  | #列出所有本地分支  | 
标签
1  | #列出所有tag  | 
查看信息
1  | #显示有变更的文件  | 
远程同步
1  | #下载远程仓库的所有变动  | 
撤销
1  | #恢复暂存区的指定文件到工作区  | 
理解工作区和暂存区
先上图:


- 工作区就是电脑上的文件夹
 - 在工作区中有一个隐藏的
.git文件夹,它不属于工作区,是git的版本库,这里包含所有git操作所需要的东西 - 版本库中最重要的东西就是暂存区(index/stage),还有自动创建的第一个分支
master和指向master的指针HEAD 
下面通过简单的指令来理解暂存区的概念:
首先
git init初始化一个空的版本库,git会自动帮我们创建一个分支master,此时的git commit就是往master分支上修改。假设工作区已经有一个readme.txt文件,那此时工作区有一个文件,暂存区和版本库都没有文件:
我们先对
readme.txt进行修改,内容随意;再在工作区新增一个文件LICENSE,然后使用git status来查看状态:
可以看到
readme.txt被修改了,而LICENSE文件还没有被git add过,因此是Untracked的使用
git add来把这两个文件从工作区复制到暂存区,然后用git status查看状态:
此时暂存区的状态如下图:

然后使用
git commit来把暂存区中的文件提交到分支:
此时的版本库如下,暂存区已经没有任何内容了:

gitignore
有时候我们需要把一些文件放到git的工作区当中,但是又不想提交它们,.gitignore配置文件就是用来忽略文件的。
不用担心不会写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
需要注意的是,.gitignore文件也是需要放入到版本库中的,并且也可以对它进行版本管理。前面我们知道git status会显示一些Untracked的文件,看起来很不舒服,但如果我们利用.gitignore来忽略该文件,git status就会显示working directory clean了。