看了廖学峰老师的教程,并加上自己的理解,我总结了属于自己的通俗易懂版本,在此记录下来。
首先,了解git和github。
在此之前,可能有人也和我一样,听说过git,也听说过github,并且有自己的账号,但两者是一回事吗?或有啥区别,有啥联系?
(ps:不知道大家会不会和我有一样的状况,要是脑子里一开始有一些不是非常清晰的概念,此刻想要深入去学习的时候就无法专心,也能理解为脑子就没有充足的空间去关注当下需要理解或学习的东西上,因为那些不是很清晰的概念占据着一些不必要的空间。)
所以,先来理清一下思路又再说。
Git是一款免费、开源的分布式版本控制系统。
Github是用Git做版本控制的代码托管平台。也就表示这样的代码托管平台可以有很多个,git和github不是一一对应关系。比如,听说过的还有“码云”,等等。
Git是分布式版本控制系统,就是将同一个Git仓库,分布到不同的电脑上。这样工作时就必须找一台电脑充当服务器仓库的角色,每天24小时开机,其他每个人都从这个服务器仓库中拉取别人的提交,并且各自把各自的提交推送到这个服务器仓库里。但这是很不方便的,如果有个远程的免费的仓库可以使用才是最好的。
GitHub就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。也就是有了这个远程仓库之后,一起合作的小伙伴拉取或是提交都是面对这个远程仓库就可以了。
至于怎样完成所有步骤,接下来会通俗易懂介绍的。
什么是git?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
什么契机下,产生的版本控制系统:
如果几个同事一起合作编辑一个文件,如果全靠人工的话,就需要保留每个时期,每个人的版本,以便之后查看,修改。还得整理出包含每个改动的最终版,这个最终版只要有人改动,就得找到那个改动的地方,然后更新。总之,整个过程是非常耗费时间和人力的。
由此需要,产生了版本管理系统,它可以自动帮我们记录每次文件的改动,还可以让同事协作编辑,也不用自己管理一堆类似的文件,也不需要把文件传来传去。
知道了版本控制系统,那什么是分布式呢?
与分布式对应的是集中式。
集中式就是将整个文件统一放在特定服务器上,工作的时候先要从这个服务器上获取到最新版本,然后再进行自己的编辑修改,完了再提交到此服务器上。所以如果没有网络,就没法工作了。
分布式是每个人电脑上都有完整版本,没有网络也可以工作,可以同事之间交换修改部分,也可以统一设立中央服务器,然后得到每个人修改的记录。
先简单这样有个概念,之后再自己实验。
怎样使用git?
1、要先安装git,再这里有详细的各个操作系统下的安装步骤。
2、装好之后,我们要理解到,git管理的单位或是范围称为“仓库”,其实也就是某个你想管理的文件夹(目录)。
(ps:你可以建立多个仓库,有些是本地自己用git管理,有些是托管在github或码云或别的远程平台上。)
下面就举个我在本地用git管理文件的例子:(别急,下一篇,会再举远程的例子)
【注:我的是win10系统。而且我已经装好git了。】
先说个题外话:我对命令行的理解(随时保留改正空间~~)。
我是这样理解的(如果不对的话,欢迎提出你的想法,向你学习):命令行是与图形界面操作一个意思,就比如图形界面上鼠标右键选择新建文件,那这个操作在命令行就可以用某个命令去完成。
命令行在不同操作系统上会有不同的命令行工具,例如windows上是cmd,Linux下是shell。
而如果下了一个软件,里面的操作是用命令行操作的话,它也会提供命令行工具,就比如下了git,它提供了git bash,在里面写命令来操作。(这个软件是基于哪个操作系统开发的,则它提供的命令行工具,也会延续该操作系统的命令,所以git bash也就当作Linux环境下的命令行工具。)
(1)在合适的位置创建空的目录,作为版本库。
这个目录(版本库)里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
使用e:就不能进入e盘了,因为e:是windows下的命令。
我在e盘下新建了gitproject,然后又在其下新建了localfile文件,准备将localfile作为本次实验的git仓库。
(2)在当前目录下,通过【git init】
命令把这个目录变成Git可以管理的仓库:
执行git init命令之后,从“我的电脑”打开localfile,则会看到localfile目录下有个.git目录,这个目录就是Git用来跟踪管理版本库的。
(3)然后在localfile下新建文件test.txt,并写些内容进去。
例如在文件中写如下文字:
(4)用命令【git add】
告诉Git,把文件添加到仓库:
没有任何反应,说明执行成功。
(5)用命令【git commit】
告诉Git,把文件提交到仓库:
注:git commit -m之后双引号中是本次修改的描述,可以写你觉得可以描述本次行为的任何有意义的内容,以便之后查阅。
你可以多次执行git add命令,之后再使用git commit一次进行提交。
当你用git add
命令后,相当于将一次修改放入暂存区,准备提交,所以可以将多次修改放入缓存区之后,一次提交。
(6)当我们再次修改了test.txt文件之后,再执行【git status】
命令,可以得到如下结果:
它会告诉你仓库当前的状况:test.txt被修改了,但是还没有放入缓存,也还没提交。
(7)用【git diff】
这个命令,可以查看我们具体做了什么修改:
我当下的test.txt内容为:
(8)接着执行git add,再执行git status:
它会告诉我们当前仓库的状况是:将要被提交的文件是test.txt。
(9)然后执行git commit -m "第二次修改",再执行git status:
它告诉我们当前仓库的状况是:没有需要提交的内容。
(10)使用【git log】命令查看所有历史记录:
我用蓝色圈出来的部分就是我们每次提交时候写在 -m 之后的描述,可以简单清晰了解每次大概改动的地方。
好的,以上就是经常会使用到的命令,总结一下:(如果想要了解其他命令,可以仔细阅读廖学峰老师的教程)
git init 将当前目录变成git仓库
git add 将修改文件放入缓存区
git commit -m "描述文字" 将缓存区中文件提交
git status 查看当前仓库的情况
git diff 查看具体修改内容
git log 查看历史记录
下一篇会总结托管在github上的例子~~