git入门

  参考了来源于网络的廖雪峰老师的git教程和相关视频课程,梳理了一下,写一下心得,整理给大家。相对于github,码云更好用一些,不过用法上差不多,所以就以码云的操作为例。

什么是git?

  Git是目前世界上最先进的分布式版本控制系统,也就是逼格的缩写,开发人员必备的利器,操作简单而且真的很实用。

  简单的粘贴一段git的由来:

  很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

  Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?

  事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

  你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

  不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。

  安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。

  Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:

  Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。

  Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

  历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

git的基本操作

  我使用的是windows10,64位的操作系统(虽然不建议在windows上操作,但是处于学习阶段windows还是使用的很流畅的,大家也可以使用linux虚拟机练习),所以我安装了win10,64位的git。

  首先,如图,我们的工作区为我们创建的项目的文件夹,所以我们第一步要进行工作区的创建,也就是创建一个新的文件夹。

  第二步,在码云上创建项目。

  默认项目里只有一个readme文本文件。复制项目的链接(未注册ssh公钥使用https的地址绑定)。

  

  第三步,返回到工作文件夹,右击git bash here,输入git init进行工作文件夹的初始化(就是给仓库进行装修,使仓库更便于管理)。

   初始化完成会生成隐藏文件夹.git,说明这一步完成了(这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了)。

  第四步,仓库完成初始化连接云端。

  第五步,将云端数据拉到本地已初始化好的仓库。

  此时,云端的文件存在仓库中。

  接下来要保证仓库与云端同步,开发者要将修改的项目版本上传需要如图的三个步骤,add->commit->push。当然这三个步骤是有必要的。

  git add告诉Git,把文件添加到仓库,git commit告诉Git,把文件提交到仓库,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。

  为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

  对于项目的操作,修改

  我们的仓库中分为工作区(实际项目)与.git(git版本库)。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

  概念有点多,简单的来说就是我们要上传项目时:

  第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

  第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

  因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

  你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

  add->commit->push的操作顺序,最新版本就被上传到项目同步了(每次修改过后把修改逗得文件add就可以了)。

  附加:http://git.mydoc.io/?t=180845,码云的公钥管理操作方法。绑定公钥就不用每次push都输邮箱和密码了。

同步参与别人的项目

  第一步要先fork,克隆出自己的分支。

  连接的云端要是自己的分支,就是fork以后的分支。

  

  同步要连接的项目地址,对项目进行操作,然后

  基本上git的简单操作了就这些了,几分钟就能学会,但是在开发的过程中十分有帮助。

  最后附上廖雪峰老师原版的课程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375233990231ac8cf32ef1b24887a5209f83e01cb94b000

  有兴趣的可以看看原版专业的,我写的就自己总结一下给自己看的。

posted @ 2017-11-08 01:48  JeffD  阅读(466)  评论(0编辑  收藏  举报