版本控制器的方式:
1.集中式版本控制工具,版本库是存放在中央服务器的,team里面每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或者互联网,个人修改后然后提交到中央版本库【举例:SVN,CVS】
2.分布式版本控制工具,分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,就无需联网,因为版本库就在你自己的电脑上,多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了【举例Git】
git主要解决了开发中哪些问题
-
代码意外丢失:比如硬盘磁盘损坏
-
协同开发困难:一个庞大的项目一般由多个人协同开发,那么代码合并该怎么办,总不能大家互相拷贝吧
-
追责问题:当项目中某行代码出了问题,这行代码到底是谁写的
-
代码还原问:有时候写代码写着写着就面目全非了,想还原原来的代码怎么办
解决GitBash乱码问题
1.git config --global core.quotepath false
进行版本控制步骤:
1.获取本地仓库
【1】在电脑任何位置创建空目录作为本地git仓库
【2】进入目录右键打开git bash窗口
【3】执行命令git init进行初始化仓库
【4】创建成功后可以看见文件夹下隐藏的.git目录
基础操作命令
Git工作目录下对文件的修改【增删改】会存在几个状态,这些修改的状态会随着我们执行的Git的命令而改变
git status查看修改状态
git add . 添加工作区的一个或者过个文件的修改到暂存区
git commit -m '注释内容' 提交暂存区内容到本地仓库的当前分支
【例如git commit -m "add file01"】
注意:如果出现Another git process semms to be running in this repository, e.g. an editor opened by ‘git commit’.异常,指 git 被另外一个程序占用,重启项目或者重新打开项目都不能解决,除非删除git源文件。原因在于Git在使用过程中遭遇了奔溃,部分被上锁资源没有被释放导致的。
解决方案:将 .git 文件中 index.lock 删除(rm -rf index.lock)。
git log 查看提交记录
git log [options]
--all显示所有分支
--pretty=oneline将提交信息显示为一行
--abbrev-commit使得输出的commitld更剪短
--graph以图的形式显示
git reset --hard commitID 版本回退
commitID可以用git -log 或者git log指令查看
git reflog查看已经删除的记录
分支
分支:几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线
查看本地分支:git branch
创建本地分支:git branch 分支名
切换分支git checkout 分支名
切换到一个不存在的分支(创建并切换)git checkout -b 分支名
合并分支git merge分支名称
删除分支(不能删除当前分支,只能删除其他分支)git branch -d b1【不行的时候用D强制删除】
退出编辑【esc:wq回车 】
解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这是就需要手动解决冲突,解决步骤如下:
1.处理文件中冲突的地方
2.将解决完冲突的文件加入暂存区
3.提交到仓库
开发这种分支使用原则与流程
master生产分支:线上开发,主分支,中小规模项目作为线上运行的应用对应的分支
develop开发分支:是从master创建的分支一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线 要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线
feature/xxxx分支:从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
hotfix/xxxx分支:从master派生的分支一般作为线上错误修复使用,修复完成后需要合并到master、test、develop分支
分支练习:
2.git远程仓库
1,创建远程仓库
2,配置公钥:
3,操作远程仓库
学习网站