文章目录
- 1.Git介绍
- 1.1.什么是Git?
- 1.2.Git的历史
- 1.3.版本控制分类
- 1.3.1.集中式版本控制
- 1.3.2.分布式版本控制
- 1.4.Github(Git服务器)
- 1.5.Git原理
- 2.使用前的准备
- 2.1.准备Git
- 2.1.1.安装Git
- 2.1.2.配置环境变量
- 2.1.3.IEDA配置Git
- 2.1.4.安装git插件(TortoiseGit)
- 2.2.准备Gitee
- 2.2.1.注册Gitee账号
- 2.3.2.创建版本仓库
- 2.3.2.1.进入管理页面
- 2.3.2.2.创建仓库
- 2.3.3.安装Gitee插件
- 3.发布
- 3.1.创建空工程
- 3.2.创建模块
- 3.3.发布项目
- 3.3.1.创建git本地仓库
- 3.3.2.添加到暂存区
- 3.3.3.提交到本地仓库
- 3.3.4.推送到远程仓库
- 4.克隆
- 4.1.删除工程
- 4.2.克隆工程
- 4.提交
- 4.1.修改工程
- 4.1.**提交到本地仓库**
- 4.4.推送到远程仓库
- 5.更新
- 5.1.模拟场景
- 5.2.下载版本库中最新的代码
- 6.冲突解决
- 6.1.模拟场景
- 6.2.提交
- 6.3.解决冲突
- 6.4.如何避免冲突
- 7.分支的使用
- 7.1.为什么要创建分支?
- 7.2创建分支
- 7.3.合并分支
- 8.历史记录
- 9.git版本管理注意事项
- 9.1 gitee成员添加与冲突提示
- 9.2 协同开发版本同步问题(版本管理注意事项)
- 9.3 初始化项目提交失败
1.Git介绍
1.1.什么是Git?
Git是一个开源的 分布式版本控制系统
,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 LinusTorvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
1.2.Git的历史
1.3.版本控制分类
- SUBVERSION
- gitlab
- git
1.3.1.集中式版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。如果不连网则无法使用版本控制器。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS
1.3.2.分布式版本控制
所有版本信息仓库全部同步到本地的每个用户,这样就可以离线使用版本控制器,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
git是一个分布式版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更好的管理你的程序,比如: 你原来提交过的内容,以后虽然修改了,但是通过git这个工具,可以把你原来提交的内容重现出来,这样对于你后来才意识到的一些错误的更改可以进行还原
1.4.Github(Git服务器)
- 国内的代码托管平台(码云)地址:https://gitee.com/
- 国外git服务器(github)地址:https://github.com/
在部分企业中,开发人员是否拥有Github帐户,在Github中是否有个人的代码和资料发布、发布数量等,成为了开发人员实力的一种评价标准。
1.5.Git原理
- 工作区: 项目所在的目录
- 暂存区(stage/index): 用于储存工作区中的变更(增删改等改动)的目录
- 本地仓库: 用于储存工作区和暂存区中提交上来的文件
- 远程仓库: 远程github仓库
使用:
- 平时我们写的代码都是在工作区
- 执行add命令后就是提交到了暂存区
- 再执行commit命令后就把代码提交到了版本库了(本地仓库)
- 最后再执行push命令把本地代码提交到远程版本库。
2.使用前的准备
2.1.准备Git
2.1.1.安装Git
- 在git下载页面中:https://git-scm.com/downloads,选择你的系统类型,这里我选择Windows,点击Windows
- 点击系统类型后,网站会自动进行下载
- 文件下载完成后,双击打开文件,进行安装
- 点击Next
- 设置安装路径
- 选择安装的组件,Git Bash Here指的是命令行模式,Git GUI Here指的是图形界面,选择默认,点击Next
- 设置开始菜单名称,不需要创建菜单就勾选下方的Don’t create a Start Menu folder,点击Next
- 设置编辑器,选择编辑器为git默认编辑器,点击Next
- 勾选Use Git from Git Bash only,然后点击Next,随后的四步直接点击Next即可
- 出现安装完成的标志时,将两个勾选都去掉,然后点击Finish
2.1.2.配置环境变量
2.1.3.IEDA配置Git
安装完Git工具后第一步需要在IEDA里配置git执行程序的路径,选择 【File】→ 【Settings】→ 【Vwesion Control】→ 【Git】,选择git可执行文件的路径(正确配置的情况下,点击Test会弹出git版本的提示)
2.1.4.安装git插件(TortoiseGit)
- 双击安装,下一步即可。
- 安装完成之后,点击鼠标右键会出现小乌龟样式。
2.2.准备Gitee
2.2.1.注册Gitee账号
请自行在Github(https://gitee.com)网站中注册。
由于github服务器在国外,访问可能会存在问题,改为github,操作过程均一样。
注意:由于码云近期规则调整,发布公开项目需要审核,需按照指定规则填写方能开源。
2.3.2.创建版本仓库
2.3.2.1.进入管理页面
2.3.2.2.创建仓库
2.3.3.安装Gitee插件
-
在idea的插件市场中搜索gitee插件
-
安装完成后重启
-
生成私人令牌(
注意:令牌第一次是明文,需要保存好。
)
-
使用token配置Gitee
3.发布
3.1.创建空工程
- 后续可以添加多个项目到此空工程中
3.2.创建模块
注意:git会忽略空文件夹
3.3.发布项目
3.3.1.创建git本地仓库
- 在idea的菜单项选择【VCS】→【Create Git Repository】
- 默认是直接定位到当前项目文件所在的磁盘目录,一般git初始化就在当前项目的根目录,不需要修改路径,直接点击OK确定即可
- init完成之后,可以看到原本的项目文件名变成了红色了,红色在idea的git版本表示未add的文件(没有将项目添加到暂存区)
- 在系统资源管理中打开项目的磁盘文件目录,会发现一个.git的隐藏文件,这个文件就git的配置和仓库文件
3.3.2.添加到暂存区
- 右击项目——>点击Git——>点击Add
- 添加完成之后之前的红色文件名变成了绿色了
3.3.3.提交到本地仓库
- 点击【Git】→【Commit Directory】
- 填写提交注释说明,点击【commit】
- (可选)填写用户名和邮箱(若使用私人令牌配置的idea则不需要此步),填写gitee的注册邮箱和密码
3.3.4.推送到远程仓库
- 点击【Git】→【Push】推送当前项目到远程仓库
- 复制gitee仓库地址
- 添加gitee远程仓库地址
- 推送项目到远程仓库
- 发布成功
- 如果出现提交拒绝可以在DOS窗口执行以下命令
git pull origin master --allow-unrelated-histories
4.克隆
4.1.删除工程
- 删除工作空间中的
git_repository_third01
工程
4.2.克隆工程
- 选择菜单上【Git】→【Clone】
- 复制gitee仓库地址
- 复制的 git仓库地址粘贴到URL中,点击【Clone】
- 克隆完成之后,IDEA会提示导入项目
4.提交
4.1.修改工程
4.1.提交到本地仓库
- 完成代码的开发后,直接将修改和添加的代码或文件提交到本地仓库上(文件已添加至暂存区,受git追踪):
- 点击【Git】→【Commit File】
- 填写提交注释说明,点击【commit】
4.4.推送到远程仓库
- 点击【Git】→【Push】推送当前项目到远程仓库
- 点击【push】,推送到远程仓库
- 推送成功后,在 github 服务器上就会看到新推送的项目文件
5.更新
5.1.模拟场景
- 其他同事提交了代码到远程gitee仓库:
5.2.下载版本库中最新的代码
- 选中项目使用pull命令下载版本库中最新的代码
- 更新结果:
6.冲突解决
6.1.模拟场景
- 远程仓库代码:
- 本地工作空间代码:
6.2.提交
- 代码有冲突是否合并,选择【Merge】
- 提交失败需手动合并:在冲突的面板上可以选择一个解决方案来解决冲突,前两个都是进行的覆盖操作,选择【Merge】进行手动合并
6.3.解决冲突
- 点击图中箭头合并代码
- 合并结果
6.4.如何避免冲突
- 早上来了先更新:避免冲突
- 写一个提交一个:把冲突留给别人(不推荐)
- 与发生代码冲突的同事协商(推荐)
7.分支的使用
7.1.为什么要创建分支?
- 当我们开发完了一个app上线了,接下那就是
迭代功能开发
,如果上线的app出现了一个严重的bug,要你放下手头新功能的开发去解决这个bug,然后在发布一个新版本,如果你要是就在你要迭代功能的项目上进行修改发布的话,那肯定是不行的,且先不谈有没有新的bug出现,时间是也是不允许的,发布的前提还要把新功能完善好才行,要是删掉新功能的代码也不怎么现实,要是业务逻辑少一点还好说,要是多的话那还真是有点无从下手了,所以git的分支就很好的解决了版本迭代这个问题
; 如下图:
- master就是我们的主代码,一直优化,到v1.4版本发布了,然后接着往下开发v2.0,v2.1版本,但是v1.4版本出现了一个严重的bug,这时候我们就在这个v1.4版本创建一个分支developer来对bug进行修复,到了v1.6版本bug修复好发布出去,然后在跟原来的master主代码进行合并一下把代码添加到v2.1版本就OK了,剩下就接着迭代开发了;
7.2创建分支
- 不同分支互不干扰,即在一个分支上更新代码,不会影响到另一个分支(可以很好的实现版本迭代)
- 使用checkout实现本地Idea所开发分支的切换
- 创建分支后,需要在创建的分支条件下将新创建的分支推送到远程仓库,此时在远程仓库中才可以查看
- 分支合并前,需要将二者更新后的代码提交至远程仓库后,才可以进行分支合并
-
假如,现在项目开发完成,需发布1.0版本,然后添加一个1.0的分支。
-
打开git分支菜单,点击【Branch】
-
创建新分支
-
创建新分支(版本为1.2的新分支)
-
推送1.0分支到远程仓库(本地在使用1.0的状态下推送)
-
创建新分支结果(各个分支代码互相不干扰)
-
然后切换回主干分支,进行2.0版本的开发
-
在主干分支上添加新的功能,然后提交并推送到gitee上
-
切换到1.0分支,进行Bug修复,同样别忘了提交并推送到远程1.0的分支上
7.3.合并分支
在1.0分支上完成BUG修改后,将主分支(master分支)与1.0分支进行合并:
- 合并分支(切换到主分支,将1.0分支合并到主分支中)
- 合并结果(分支合并前,需要将二者更新后的代码提交至远程仓库后,才可以进行分支合并)
- 将合并后的主分支推送至远程仓库
8.历史记录
1、查看文件或项目提交的历史记录:选中文件 →【右击】→ 【Git】→ 【Show History】
- IDEA默认展示你当前所选择文件的提交历史,左侧是文件的历史提交列表,右侧是每次提交与上一版本的比较
- 回退上一个版本:当你误删了一段代码(方法),但又提交了,可以使用下面Get的操作来进行回退。打开文件的历史提交记录,选择回退的版本 →【Get】,然后你就可以看到你的代码又回来了~
9.git版本管理注意事项
9.1 gitee成员添加与冲突提示
9.2 协同开发版本同步问题(版本管理注意事项)
-
问题示例
-
解决方法(添加 .gitignore文件)
-
初始化仓库添加相关文件
-
使用插件手动田间版本控制器忽略文件
9.3 初始化项目提交失败
-
在gitee新创建好项目后,发现在idea中提交不成功(报错如下)
-
原因: 在本地项目中没有
README.md
文件,需要将仓库上的README.md
文件pull
到本地(使用小乌龟插件)git pull –rebase origin master
-
执行完上述命令后,会发现在本地文件夹中已经含有
README.md
文件 -
再次提交,发现可以成功
push
到远程仓库中