一、安装Git
可以使用以下地址下载Git,然后默认选项安装即可
Git for Windows
https://git-for-windows.github.io 安装完成后,在开始菜单找到“Git”->"GIt BAsh" ,说明安装成功

下载完成后,打开进行安装(按照下图进行配置)


只需静静等待安装完成,完成后在桌面或者任意文件夹的空白位置右键,出现下图所示链各个菜单栏即表示安装成功。

二、基本命令行指令
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和email地址

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

(一)初始化仓库
在空的目录下,通过使用git init 命令把这个目录变成Git可以管理的仓库
git init
运行成功后,可以放下当前目录下多了一个 .git 的目录 这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
(二)添加文件到仓库
步骤一:创建一个普通的文本文件

步骤二:使用git命令行将文本添加到版本库中
命令解析:
第一步:用命令 告诉Git,把文件提交给本地仓库:
git add readme.txt
或者
git add .
执行命令后,没有任何显示,这就对了,Unix的哲学是“没有消息就是最好的消息”
第二步:用命令告诉Git 把文件提交到本地仓库
git commit -m "备注"
git commit 命令中,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,方便自己能从历史记录里找到改动的记录。
执行命令成功后会告诉你,一个文件被改动了(新添加的readme.txt),插入了两行内容(readme.txt有两行内容)。
注意:在执行commit命令之前,都先执行一下add操作,避免有文件遗漏。
(三)查看版本状态
问题:如何查看项目目前的状态?当我们写代码一段时间,用Git管理,中途去趟厕所,然后喝杯咖啡,回来继续工作,不记得之前用Git 干了什么
git status
使用 git log 查看当前git版本库的状态(查看缓存区中的文件内容)
(四)查看日志
git log
或者
git log --pretty=oneline
git log 命令执行后会显示从最近到最远的提交日志

加上 --pretty=oneline 后 减少输出信息,避免眼花缭乱

为什么 commit id 要使用这么长一串字符而不是数字?
当两个人同时在一个代码上工作时候,分别往各自的本地的版本库提交时,相同的提交号对应着不同的修改,如果使用1,2,3这样的数字不能保证唯一性,所以Git使用SHA-1算法产生唯一标识符,保证全球唯一 。
(四)查看差异
如果一个文件知道被人修改了,但如果能看看具体修改了什么内容,自然是更好的 比如你休假两周从国外回来,第一天上班时,已、经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看。
git diff // 查看不同版本之间的文件差异

(五)版本回退
我们不断修改文件,不断的往版本库中提交文件。就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为 commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit 恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
如果想回到上一个版本,应该怎么做呢? 首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
git reset --hard HEAD^ # ^:上个版本 ^^:上上个版本 ^^^:上上上个版本
回退指定版本
git reset --hard commit id
# commit id 可以通过查看日志得到
(六)管理修改
操作方式1:
第一次修改 -> git add -> 第二次修改 -> git commit

操作方式2:推荐使用
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
PS:建议在每次 commit 之前先检查是否有文件没有被 add
(七)撤销修改
git checkout -- filename git checkout -- readme.txt
git checkout -- filename可以丢弃工作区的修改:-- 后面是一个空格
命令 git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况: 一:readme.txt 自修改后还没有被放到暂存区(git add),现在,撤销修改就回到和版本库一模一样的状态; 二:readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。
注意: git checkout -- file 命令中的 -- 很重要,没有 -- ,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到 git checkout 命令
(八)删除文件
一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:
git rm text.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:
删除完成后需要 commit
如果删除了想恢复,可以使用 reset 版本恢复

(九)分支管理
分支相关命令:
查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建 + 切换分支:git checkout -b <name>

将某分支合并到当前分支:git merge <name>
删除分支:git branch -d <name>

















