一:备份
二:代码还原
三:协同开发
四:追溯问题代码的编写人和编写时间
a:集中式版本控制工具 (SVN 和 CVS)
版本库是放在中央服务器的,每个人工作时从中央服务器下载代码,都是要联网,才能工作的。个人修改后再提交的中央服务器
b:分布式版本控制工具(Git)
没有“中央服务器”,每个人电脑上都是一个完整的版本库,工作则无需联网,本版库就在自己电脑上
2.5Git工作流程图
命令如下:
clone(克隆)∶从远程仓库中克隆代码到本地仓库
checkout(检出) :从本地仓库中检出一个仓库分支然后进行修订
add(添加):在提交前先将代码提交到暂存区
4.commit(提交)︰提交到本地仓库。本地仓库中保存修改的各个历史版本
5.fetch (抓取)︰从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
pull (拉取)∶从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
push(推送)︰修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库
Git工作目录下对于文件的修改(删除,更新,增加)这些修改状况会随着执行Git的命令变化而变化
作用:添加工作区一个或多个文件的修改到暂存区
命令:git add 文件名
将所有修改加入暂存区 git add .
每次进行的vi编辑文件之后还要进行:add ;commit -m “ ” ;操作
作用:查看提交形式
命令:git log [options]
options
配置别名:用一些指定的命令代替长命令
创建一个名为:.gitignore 的文件 把不需要的文件名的扩展名 填写进去
从主线上分离开来进行修改,开发,不影响主线开发。
查看本地分支 :git branch
创建本地分支:git branch 分支名
切换分支:git checkout 分支名
切换到不存在的分支:git checkout -b 分支名
合并分支(merge): git merge 分支名
删除分支 :(不能删除当前分支,只能删除其他的分支)
git branch -d b1 删除分支时,需要做各种检查
git branch -D b1 不做任何检查,强制删除
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
如下图:
几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
有如下原则和流程:
master(生产)分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;.
develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master分支,准备上线。
feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
hotfix/xxxx分支,
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。
还有一些其他分支,在此不再详述,例如test分(用于代码测试)、pre分支(预上线分支)等等。
GitHub , 码云 ,GitLab
命令:git remote add
命令:git clone SSH的地址 指定clone文件名
抓取 命令:git fetch [remote name] [branch name]
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
如果不指定远端名称和分支名,则抓取所有分支。
拉取 命令:git pull [remote name] [branch name]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
如果不指定远端名称和分支名,则抓取所有并更新当前分支。