★Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
★Git是Linus Torvalds(一个很厉害的软件工程师,代表作品其一linux)为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件
★Git采用的是分布式版本库的方式,不必服务器端软件支持
简单来说,Git是一个版本控制软件,可以通过Git对仓库的代码进行版本控制,相对于SVN来说.svn不能进行版本控制,因此Git更适合做团队开发.Git工具可以帮助我们从仓库拉取代码或将代码推送到仓库里
问题一:为什么我们必须要一个版本控制呢?
都知道,在软件开发过程,每天都会产生新的代码,代码合并的过程中可能会出现如下问题:
★代码被覆盖或丢失
★代码写的不理想希望还原之前的版本
★希望知道与之前版本的差别
★是谁修改了代码以及为什么修改
★发版时希望分成不同的版本(测试版、发行版等)
同时提供一种机制:
★可以随时回滚到之前的版本
★协同开发时不会覆盖别人的代码
★留下修改记录,以便随时查看
★发版时可以方便的管理不同的版本
问题二:什么是版本控制系统?
一个标准的版本控制系统 Version Control System (VCS),通常需要有以下功能:
★能够创建 Repository (仓库),用来保存代码
★协同开发时方便将代码分发给团队成员
★记录每次修改代码的内容、时间、原因等信息
★能够创建 Branch (分支),可以根据不同的场景进行开发
★能够创建 Tag (标签),建立项目里程碑
版本控制系统的几个模式:
本地使用 复制/粘贴 的方式进行管理,缺点是无法协同开发
中央集中式版本控制系统团队共用仓库,当某人需要编辑文件时,进行锁定,以免其他人同时编辑时造成冲突。缺点是虽然避免了冲突,但不是很方便。其他人需要排队才能编辑文件,如果有人编辑了很久或是忘记解锁就会造成其他人长时间等待的情况。
中央集中式版本控制系统团队共用仓库,不采用悲观锁方式来避免冲突,而是事后发现如果别人也修改相同文件(冲突),再进行手动修改解决。有很多 VCS 属于这种类型,如:CVS,Subversion,Perforce 等中央集中式版本控制系统的共同问题是,
做任何操作都需要和服务器同步,如果服务器宕机则会造成无法继续工作的窘迫。
分布式版本控制系统,本地也拥有完整的代码仓库,就不会出现上述集中式管理的问题,即使没有网络,依然可以 commit 和看 log,也无需担心服务器同步问题。如:Git,Mercurial,Bazaar 等就属于分布式版本控制系统。缺点是功能比较复杂,上手需
要一定的学习时间。
下载地址: https://git-scm.com/downloads
① 从资源库克隆(拉取)项目到本地作为工作副本
② 从克隆的项目上进行开发,进行添加删除修改操作,如果被其他人修改了你还可以进行更新资源操作
③ 在提交开发完成的项目的时候可以查看修改,如果修改完成后发现错误,可以撤回提交再次修改并提交
转载于:https://www.cnblogs.com/fkg4816/p/11221695.html