前面的 GitHub 系列文章介绍过,GitHub 是根据 Git 的,所以也就意味着 Git 是根底,假定你不会 Git ,那么接下来你彻底持续不下去,所以今日的教程就来说说 Git ,当然关于 Git 的常识单凭一篇文章必定说不完的,我这篇文章先介绍一些最基本的、最常用的一些 Git 常识,争夺让你们 Git 速成。
1. 什么是Git?
Git 是 Linux 发明者 Linus 开发的一款新时代的版别操控体系,那什么是版别操控体系呢?怎样了解?网上一大堆详细的介绍,可是大多枯燥乏味,关于新手也很难了解,这儿我只举几个比方来协助你们了解。
了解编程的知道,咱们在软件开发中源代码其实是最重要的,那么对源代码的办理变得反常重要:
比方为了避免代码的丢掉,必定本地机器与长途服务器都要寄存一份,并且还需求有一套机制让本地能够跟长途同步;
又比方咱们常常是好几个人做同一个项目,都要对一份代码做更改,这个时分需求咱们互不影响,又需求各自能够同步他人的代码;
又比方咱们开发的时分免不了有bug,有时分刚发布的功用就呈现了严峻的bug,这个时分需求紧迫对代码进行复原;
又比方跟着咱们版别迭代的功用越来越多,可是咱们需求清楚的知道前史每一个版别的代码更改记载,乃至知道每个人前史提交代码的状况;
等等等相似以上的状况,这些都是版别操控体系能处理的问题。所以说,版别操控是一种记载一个或若干文件内容改变,以便将来查阅特定版别修订状况的体系,关于软件开发范畴来说版别操控是最重要的一环,而 Git 毫无疑问是当下最盛行、最好用的版别操控体系。
2. Git 装置
上面说了,Git 是一个版别操控体系,你也能够了解成是一个东西,跟 Java 相似,运用之前必须得先下载装置,所以第一步必需求装置,我用的是 Mac , Mac 上其实体系自带 Git 的,不过这儿一致供给一下各渠道的装置方法,这部分就不过多介绍,信任咱们这儿搞的定。
Mac:https://sourceforge.net/projects/git-osx-installer/
Windows:https://git-for-windows.github.io/
Linux:apt-get install git
3. 怎样学习 Git ?
装置好 Git 之后,怎样学习是个问题,其实关于 Git 有许多图形化的软件能够操作,可是我强烈主张咱们从指令行开端学习了解,我知道没触摸过指令行的人或许会很抵触,可是我的亲自实践证明,只要一开端学习指令行,之后你对 Git 的每一步操作才干了解其意义,而等你娴熟之后你想用任何的图形化的软件去操作彻底没问题。
我一开端教咱们团队成员满是根据指令行的,过后证明他们现在现已深深爱上指令行无法自拔,他们很了解 Git 每一步操作的详细意义,以致于在实践项目很少犯错,所以我这儿也是根据指令行去教你们学习了解。
4. Git 指令列表
怎样判别你 Git 有没有装置成功?请在指令行里输入 git ,假定呈现以下提示证明你现已装置成功了。

Git 一切的操作指令最初都要以 git 最初,上面列举了最常用的一些 Git 指令,紧接着会有一句英文解说这个指令的意义,都不是很难的单词,无妨试着看一下,不过没有实践操作你依然欠好了解,下面咱们来以一个实践的操作来介绍下一些常用指令的意义。
5. Git 详细指令
第一步,咱们先新建一个文件夹,在文件夹里新建一个文件(我是用 Linux 指令去新建的,Windows用户能够自己手动新建)
mkdir test (创立文件夹test)
cd test (切换到test目录)
touch a.md (新建a.md文件)
这儿提示下:在进行任何 Git 操作之前,都要先切换到 Git 库房目录,也便是先要先切换到项目的文件夹目录下。
这个时分咱们先随意操作一个指令,比方 git status ,能够看到如下提示(别纠结色彩之类的,装备与主题不一样罢了):

意思便是当时目录还不是一个 Git 库房。
git init
这个时分用到了第一个指令,代表初始化 git 库房,输入 git init 之后会提示:

能够看到初始化成了,至此 test 目录现已是一个 git 库房了。
git status
紧接着咱们输入 git status 指令,会有如下提示:

默许就直接在 master 分支,关于分支的概念后边会提,这时最主要的是提示 a.md 文件 Untracked files ,便是说 a.md 这个文件还没有被盯梢,还没有提交在 git 库房里呢,并且提示你能够运用 git add 去操作你想要提交的文件。
git status 这个指令望文生义便是检查状况,这个指令能够算是运用最频频的一个指令了,主张咱们没事就输入下这个指令,来检查你当时 git 库房的一些状况。
git add
上面提示 a.md 文件还没有提交到 git 库房里,这个时分咱们能够随意修改下 a.md 文件,然后输入 git add a.md ,然后再输入 git status :

此刻提示以下文件 Changes to be committed , 意思便是 a.md 文件等候被提交,当然你能够运用 git rm –cached 这个指令去移除这个缓存。
git commit
接着咱们输入 git commit -m ‘first commit’ ,这个指令什么意思呢? commit 是提交的意思,-m 代表是提交信息,履行了以上指令代表咱们现已正式进行了第一次提交。
这个时分再输入 git status ,会提示 nothing to commit。
git log
这个时分咱们输入 git log 指令,会看到如下:

git log 指令能够检查一切发生的 commit 记载,所以能够看到现已发生了一条 commit 记载,而提交时分的顺便信息叫 ‘first commit’ 。
git add & git commit
看到这儿估量许多人会有疑问,我想要提交直接进行 commit 不就行了么,为什么先要再 add 一次呢?首要 git add 是先把改动添加到一个「暂存区」,你能够了解成是一个缓存区域,暂时保存你的改动,而 git commit 才是最终真实的提交。这样做的优点便是避免误提交,当然也有方法把这两步兼并成一步,不过后边再介绍,主张新手先墨守成规的一步步来。
git branch
branch 即分支的意思,分支的概念很重要,尤其是团队协作的时分,假定两个人都在做同一个项目,这个时分分支便是确保两人能协同协作的最大利器了。举个比方,A, B俩人都在做同一个项目,可是不同的模块,这个时分A新建了一个分支叫a, B新建了一个分支叫b,这样A、B做的一切代码改动都各安闲各自的分支,互不影响,比及俩人都把各自的模块都做完了,最终再一致把分支兼并起来。
履行 git init 初始化git库房之后会默许生成一个主分支 master ,也是你地点的默许分支,也基本是实践开发正式环境下的分支,一般状况下 master 分支不会容易直接在上面操作的,你们能够输入 git branch 检查下当时分支状况:

假定咱们想在此根底上新建一个分支呢,很简略,履行 git branch a 就新建了一个名字叫 a 的分支,这时分分支 a 跟分支 master 是如出一辙的内容,咱们再输入 git branch 检查的当时分支状况:

可是能够看到 master 分支前有个 * 号,即尽管新建了一个 a 的分支,可是当时地点的分支仍是在 master 上,假定咱们想在 a 分支上进行开发,首要要先切换到 a 分支上才行,所以下一步要切换分支
git checkout a
履行这个指令,然后再输入 git branch 检查下分支状况:

能够看到当时咱们在的分支现已是a了,这个时分 A 同学就能够纵情的在他新建的a分支去进行代码改动了。
那有人就说了,我要先新建再切换,不免有点费事,有没有一步到位的,聪明:
git checkout -b a
这个指令的意思便是新建一个a分支,并且主动切换到a分支。
git merge
A同学在a分支代码写的不亦乐乎,总算他的功用竣工了,并且测验也都ok了,准备要上线了,这个时分就需求把他的代码兼并到主分支master上来,然后发布。git merge 便是兼并分支用到的指令,针对这个状况,需求先做两步,第一步是切换到 master 分支,假定你现已在了就不必切换了,第二步履行 git merge a ,意思便是把a分支的代码兼并过来,不出意外,这个时分a分支的代码就顺畅兼并到 master 分支来了。为什么说不出意外呢?由于这个时分或许会有抵触而兼并失利,留个包袱,这个到后边进阶的时分再讲。
git branch -d
有新建分支,那必定有删去分支,假定这个分支新建错了,或许a分支的代码现已顺畅兼并到 master 分支来了,那么a分支没用了,需求删去,这个时分履行 git branch -d a 就能够把a分支删去了。
git branch -D
有些时分或许会删去失利,比方假定a分支的代码还没有兼并到master,你履行 git branch -d a 是删去不了的,它会智能的提示你a分支还有未兼并的代码,可是假定你非要删去,那就履行 git branch -D a 就能够强制删去a分支。
git tag
咱们在客户端开发的时分常常有版别的概念,比方v1.0、v1.1之类的,不同的版别必定对应不同的代码,所以我一般要给咱们的代码加上标签,这样假定v1.1版别出了一个新bug,可是又不知道v1.0是不是有这个bug,有了标签就能够顺畅切换到v1.0的代码,从头打个包测验了。
所以假定想要新建一个标签很简略,比方 git tag v1.0 就代表我在当时代码状况下新建了一个v1.0的标签,输入 git tag 能够检查前史 tag 记载。

能够看到我新建了两个标签 v1.0、v1.1。
想要切换到某个tag怎样办?也很简略,履行 git checkout v1.0 ,这样就顺畅的切换到 v1.0 tag的代码状况了。
OK,以上满是一些最基本的Git操作,并且满是在本地环境进行操作的,彻底没有涉及到长途库房,下一章节将以长途 GitHub 库房为例,解说下本地怎样跟长途库房一同同步协作,别的今日讲的满是最根底最简略的Git操作,一步步来,后续再持续解说一下Git的高阶以及一些Git的酷炫操作。
别的,考虑到或许会有人嫌我解说的太根底太慢,究竟我是针对小白,所以得一步步来,刻不容缓的想要提早自己学习的无妨在我大众号 AndroidDeveloper 回复「git」关键字,获取一份我引荐的还不错的 Git 学习材料,不谢,究竟我这么帅!