Git详细说明

如果说你觉得简历过于单薄,那么学习Git就是性价比极高的,完全可以单列在你的技能栏中.

1.Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

那什么是版本控制系统?

我讲个生活中实际的例子你就知道了.

即使不是计算机相关专业的大学生,必然也经常使用word去写作业.在你编写word的时候,是不是会遇到修改之后,反而觉得不如上一个好,又想返回没修改之前.可是由于没有备份,只好一步步回退的痛苦经历.

又或者你每修改一次都进行备份,随着修改次数的增多,最终你的word变成了这样

 当你过了一段时间之后,再想找回修改的一段文字时,是不是很头疼,只好一份份的查.

又或许你的同学帮你修改了文档,但是你根本不知道他修改了那些地方,只好一点点对比.

我想你急需要一款软件,不但能自动帮记录每次文件的改动,还可以让协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以了,这就是Git.

2.Git的历史

  一切都源自于那个男人,Linux,Git 之父Linus Torvalds.

很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。但同时由于全世界的志愿者无私的将自己的源代码发送给linus,最终linux的代码库已经庞大到不得不用版本控制系统的程度了.当时市面上有CVS、SVN这些免费的版本控制系统,但是由于它们是集中式的,导致linus坚决反对使用,市面上虽然也有一些比CVS,SVN好用的商用的版本控制系统,但是商用怎么可能与开源的LINUX合作.就在这时,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。直到2005年,BitMover公司要收回Linux社区的免费使用权.linus却不痛不痒,实际上他花了两周时间就用c语言写出了分布式的版本控制系统,这就是Git.到了2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

3.集中式VS分布式

集中式

典型代表:SVN

特点:所有的版本库都存在中央服务器,本地备份动作必须依赖中央服务器,如果一旦服务器挂掉,或者网络状况不好,没法提交版本。

分布式

典型代表:Git

特点:每一台客户端都有完整的版本备份,所有的版本提交不需要依赖中央服务器,只有多人协作时候,需要用服务器交换一下版本库。

4.Git的下载安装

下载地址: https://git-scm.com/download

 

下载完成后可以得到如下安装文件:

 

这里默认下载的是64位的软件

双击下载的安装文件来安装Git。
一直下一步直到安装完成即可
安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。

 Git GUI:Git提供的图形界面工具
 Git Bash:Git提供的命令行工具

5.GIt的命令操作

这里我们就不讲git的图形化操作了,因为不同版本的git图形化不同,但是都是基于Git的命令实现的,Git的命令具有普适性.

使用前需要apt-get install git安装

配置个人信息

git config --global user.name "name"

git config --global user.email "xxx@qq.com"

自动记住用户名和密码(远程仓库联动)

git config --global credential.helper store

中文显示

git config --global core.quotepath false

第一步:创建一个文件夹,并建立一个仓库

          mkdir  文件夹名

          git init  

          使用ls  -a我们可以查看到隐藏文件.git

第二步:创建一个文件,并提交文件到版本库

           git add   提交的文件名                 ---->实际上是选择你要提交的文件

           git commit  -m    "提交版本的注释,用来提醒自己修改了什么"

第三步:查看版本记录和引用记录,工作区的状态

           git  log  ----->查看当前版本的记录

           git   reflog  ----->可以查看版本的引用记录,有回退和前进记录

           git    status------>可以查看工作区的状态,即若工作区的文件内容发生改变在代表为"脏",代表可以提交,如果工作区的文件没有发生修改,则代表为"干净",不可以提交.

第四步:版本回退

         git  log  -------->去查看版本记录中的自己想要回退版本的版本号

         git   reset --hard     版本号

第五步:版本前进

        git reflog---------->当前版本记录中只有该版本及以前的版本记录,所以当前版本以后的版本号只能通过版本引用记录查看

        git   reset --hard     版本号

6.远程仓库

       远程仓库也就是专用于代码托管的远程服务器,我们可以将版本库中的文件推送给远程仓库托管,或者从远程仓库克隆到本地,或者拉取更新自己的文件,远程仓库实际上就是为了方便多人开发项目,便于统一项目的进度.

著名的托管平台

 Github:

开源项目的聚集地,世界最大的代码托管平台。很多著名的项目都在Github开源,比如Linux源码、Qt源码等。缺点:国内经常无法访问,速度比较慢。

   

Gitlab :

开源项目的聚集地,世界最大的代码托管平台。很多著名的项目都在Github开源,比如Linux源码、Qt源码等。缺点:国内经常无法访问,速度比较慢。

码云 :

国内代码托管的老大,一个账号最多可以创建1000个项目,不分公有和私有。速度非常快,体验较好。会同步国外知名的开源项目,下载速度快。

这里由于托管的网站众多,步骤无法统一所以我们依然介绍命令进行操作

克隆项目:    git clone 远程仓库的地址------>这里注意克隆是你本地没有项目,从无到有,从服务器下载一个项目继续开发

推送项目:

                   git push  origin master-------->就是将你的文件上传远程仓库保存起来

拉取项目:

                   git pull    ------------->就是把你本地工作区的文件更新到远程仓库的版本.是你本地之前就有

7.项目冲突

     当多人进行项目协作时,不可避免的会出现一些问题.因为一个项目的开发,肯定分为不同的模块去并行开发.

这里举例,比如A和B同时克隆了一个项目,并行开发,这是A更新了一个文件,B也更新了一个文件,A先推送到远程仓库,随后B也推送到远程仓库,这里会出现错误,由于B的版本中没有A更新的内容,若B推送则会导致远程仓库中A更新的内容消失,这不符合多人协作开发的逻辑

解决方案:当出现这个错误时,B应该先拉取更新项目的A修改的内容,然后再推送到远程仓库.

但是上述解决方案是基于A和B修改的是不同的文件.

  若A和B修改同一份文件,则在拉取更新时,远程仓库会将不同的部分全部保留,让开发者自己思考代码的顺序和删减,再进行推送.

最后感谢你的观看,能坚持看到这里的人一定会取得成功!!!!

    

     

   

      

 

 

 

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值