如果说你觉得简历过于单薄,那么学习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修改同一份文件,则在拉取更新时,远程仓库会将不同的部分全部保留,让开发者自己思考代码的顺序和删减,再进行推送.
最后感谢你的观看,能坚持看到这里的人一定会取得成功!!!!