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
了。