Git使用教程:超详细、超浅显、真正手把手教
备份文件:我们在日常开发中,代码备份必不可少。可以采用移动硬盘、网盘的形式来备份,但是以这种形式也有很多弊端。我们程序员一天的工作量都写在几个文件里面,如果说因为一些未知因素导致丢失了,这种情况损失还是挺大的。
历史记录:即使我们上面所说,通过硬盘、网盘来备份,也只能保存当前最新的文件。而版本工具可以备份每一次所提交的代码,以及可以记录详细的修改信息,比如说某一行代码是谁在什么时候进行提交的。
版本回退:当我们在开发过程中,也难免一些刚刚入职的同事不小心对代码所造成的伤害难以弥补的时候,这个时候我们也可以通版本管理工具,将当前的代码回退到之前提交的某个版本。
多端共享:提供进行团队合作使用,总不能同事A写了一个方法,同事B需要用到这个方法,总不能让同事A拿着硬盘拷贝过去吧,所以采用管理工具只需将代码提交即可。
CVS:年轻一代的程序员绝大都不会知道CVS这个玩意,这个CVS是由一位教授开发的,可以说它是版本管理的始祖。具体听说是当时一位教授带着几名学生开发,在代码合并、备份方面上特别不人性化,所以开发了这么一套东西。CVS是集中式的,我们更新、上传文件都是通过这个集中式的服务来完成,只需要有网络连接上这个服务即可。
SVN:那么到了2000年,有国外的一个团队研发了SVN,更加推广发扬了版本管理工具,也包括我们现在很多公司也都在使用SVN,SVN本身也是很强大的,该有的功能应有尽有。也包括目前小编的公司也是在使用SVN,说到这里我会想到小编在学校刚刚使用svn的时候,那时候组员对SVN这些东西也都不熟悉,每次更新代码都是一堆报错,还有些把代码弄没了,都是一路踩坑过来的。
Git:诞生于2005年,由linux之父Linus所开发的,这个也是市场上比较主流的版本管理。在Git之前Linus都是采用手工的方式来维护代码,因为他比较反感SVN需要连接网络才能进行工作。而Git与Svn最大的区别在于,Git是分布式、Svn是集中式
集中式:有一台中心服务器,需要连接网络才能进行更新上传的操作
分布式:只需要拥有一个自己的版本库,无需连接网络都能进行工作,提高了工作效率
GitHub:这个有人理解为就是Git,但其实是程序员社区网站,可以托管自己个人的一个软件库,只是GitHub是基于Git来实现的。
步骤一:在刚刚克隆的文件下,新建一个文件并且写入内容:“vim movie” ,vim 是linux下文本编辑器,movie 是文件名。
步骤二:把刚刚新增的文件建立追踪,使用命令:“git add movie”
步骤三:使用“git status” 查看工作区的状态,可以看到如下信息:
步骤四:设置自己的邮箱和密码 “git config --global user.email "xxx.com" ”、“git config --global user.name "xxx" ”
步骤五:使用“get commit”来提交到本地仓库,提交之后会提示你输入本次提交备注,方便以后快速找到提交版本。
步骤六:提交到GitHub,使用 “git push” 最后提交到远程仓库中去,在提交过程中会要求输入登录的用户名和密码。最后能在GitHub中看到提交的文件即可。
代码冲突怎么来的呢?
就是有同时多个人,对同一个文件进行了操作。
现在小编换了另外一个客户端,对movie文件进行了修改,并且提交了远程仓库。
修改内容如下:
但是最初那个客户端可不知道有人改动并且提交了文件,然后小编在拿第一个客户端改动文件并提交,看看会提示什么。
在改动之后并且推送给远程仓库,然后就直接被拒绝了。我们需要使用"git pull"先来更新远程仓库的代码,并且解决掉冲突才能提交。在使用pull这个命令之后,在看查看movie文件内容:
在我们解决完冲突之后,在使用push提交即可,可以看到远程仓库也一起改了。
步骤一:首先我们来确认下,我们本地最新的文件内容是什么样子的。
步骤二:使用"git log"命令查看提交的日志,现在我们需要会回退到之前在另外一个客户端所提交到内容。
步骤三:使用"git reset --hard 版本号",版本号就是上图所画的,则可以回退到指定版本。
本章只是对git做了一些基本的介绍,以及对git有一个基本的操作概念。