zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    phonegap
    iOS8以前与iOS8使用CoreLocation定位
    phonegap调用摄像头
    js与nativede 通信
    大数据基础---Spring+Mybatis+Phoenix整合
    大数据基础---Hbase的SQL中间层_Phoenix
    大数据基础---Hbase容灾与备份
    大数据基础---Hbase协处理器详解
    大数据基础---Hbase 过滤器详解
    大数据基础---Hive数据查询详解
  • 原文地址:https://www.cnblogs.com/Jeffding/p/7802143.html
Copyright © 2011-2022 走看看