一、安装Git
可以使用以下地址下载Git,然后默认选项安装即可
Git for Windowshttps://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>