小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT
一、SVN
1.SVN介绍 2.SVN安装 3.SVN操作
二、GIT
1.GIT介绍 2.集中式和分布式 3.GIT的基本使用 4.GIT时光机 5.远程仓库 6.分支管理 7.在Idea上开启使用GIT
一、SVN
1.SVN介绍
- 是什么?
svn是一个集中式的版本控制工具 - 解决什么?
1.文件的版本控制
2.职责追踪
项目在迭代更新的过程中,会产生很多个版本,有时可能需要回到之前的某个版本中,如果单纯用备份的做法来做,在版本多的情况下会非常麻烦且凌乱,为此,我们需要借助专业的工具来帮我们进行版本的管理。
而且在多人协同项目时,项目可能会因为某个成员提交的代码而崩掉,使用版本管理还可以清楚的记录何人何时提交的bug代码,方便追究责任。
- 版本控制工具
版本控制工具 | 说明 |
---|---|
SVN | 企业里用的较多 |
GIT | 开源领域用的最多最广,没有之一 |
VSS | 微软开发,设计反人类已淘汰 |
CVS | 早期时代的版本控制工具 |
- SVN架构
服务端:一般放在公司服务器上
客户端:一般安装在开发人员电脑上
2.SVN安装
官网下载
注意:安装客户端时遇到上图所示页面时,需要点击红圈选项改变设置,否则后续再Idea中使用SVN可能会遇到麻烦。
然后其他地方一路傻瓜式next安装客户端与服务端即可。
右键菜单出现上图两项时说明客户端安装成功。
开始菜单可以找到上图中的文件夹时说明服务端安装成功。
3.SVN操作
检出
当服务器的仓库里已经存在项目代码时,我们可以将之检出到任意地方。首先在任意处创建一个空文件夹。在空文件夹内右键,选择SVN Checkout。
填入版本库地址,确定即可(第一次会弹框提示输入用户名和密码)。
然后我们可以看到刚才新建的文件夹里多出了项目文件,这时就检出成功了。
提交
当我们对项目进行所需的编辑后需要进行提交,这时在项目文件夹中右键,选择SVN Commit。
然后你可以看到所有你进行的修改,勾选要提交的内容,你还可以在上面的Message框里填写注释,最后点击ok即可
最后的弹框里没有报错说明提交成功。
冲突解决
当多人合作编写项目时,有时提交会报错,这是因为在你提交之前已经有人提交了,服务端的文件已经被他修改过了,这与你的更新产生了冲突,所以报错了。
要解决冲突,我们需要在提交前进行SVN Update,
然后你的文件夹里会多出三个文件,而且你产生冲突的文件里的内容变成了类似下图所示的样子。
根据需求进行修改(只留下你的或者只留下别人的或者都保留),最后删掉之前出现的那三个文件,即可再进行提交。
查看版本记录
项目文件夹中右键,点击TortoisSVN -> Show log 即可查看版本记录。
还原版本(还原到指定版本、最新版本)
点击TortoisSVN -> Update to revision 将弹出一个跳转版本的对话框。
你可以选择跳转到最新版本或者某指定版本号的版本。如果你不太记得要跳转的版本号了,可以点击 Show log 按钮,这将会打开版本记录供你查询。
分支
点击TortoisSVN -> Branch/tag 将弹出一个创建分支的对话框。
分支创建成功后,点击TortoisSVN -> Switch 将弹出一个跳转分支的对话框,设置好参数,点击确定即可完成分支跳转。
如果我们在分支项目进行了编辑,现在想将分支与之前的主分支合并我们只需,分支创建成功后,点击TortoisSVN -> Merge 将弹出一个合并分支的对话框。
选择你需要的合并方式,点击合并,就可以看到合并后的项目文件了。
二、GIT
1.GIT介绍
- 是什么?
GIT是免费的一个分布式的版本控制工具 - 诞生?
Linus发明,最初是用来进行Linux版本控制。
2.集中式和分布式
- 集中式是一台服务器,多个客户端,服务器负载大,崩溃了后果严重,且版本的提交受网络环境影响较大。
- 分布式在集中式的基础上,给没每个客户端加了本地服务器,减轻了主服务器的负载,受网络环境影响小。
3.GIT的基本使用
安装
官网下载:https://git-scm.com/downloads
国内镜像下载:https://github.com/waylau/git-for-win
按默认选项傻瓜式安装即可。
安装完成后,右键单击桌面空白处,右键菜单里Git Bash Here,蹦出一个类似命令行窗口的东西(如下图),就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意
git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
初始化版本
(从此处开始,操作均进行在上图所示的GIT命令行页面)
$ git init
在当前目录创建一个.git的目录,并指定当前目录是git的仓库。
添加文件
Git有3个区域,一个是工作区,一个叫暂存区,一个叫仓库。
添加文件即将工作区的文件添加到暂存区。
$ git add readme.txt
添加指定文件
$ git add .
或 $ git add -A
添加全部文件
提交文件
$ git commit -m 'add *.txt'
将暂存区的文件提交到仓库,引号里是备注
查看文件当前状态
$ git status
无提示表示当前没有文件在工作区和暂存区待提交;
红色提示表示该文件在工作区待提交;
绿色提示表示该文件在暂存区待提交。
查看变化
$ git diff
4.GIT时光机
查看提交记录
$ git log
展示当前版本及之前的所有提交过的版本信息
版本回退
$ git reset --hard HEAD^
跳到上一个版本
$ git reset --hard 至少4位的版本号
跳到指定版本
在Git中,用
HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
查看每一次操作记录
git reflog
撤销修改
git checkout -- readme.txt
撤销readme.txt文件的修改(即将暂存区的内容覆盖到工作区)
删除文件
- 从工作区删除文件:
rm 1.txt
- 从暂存区删除文件:
git rm 1.txt
- 从版本库中删除文件:
git commit -m "remove 1.txt"
5.远程仓库
添加远程仓库
- ssh认证方式:
$ git remote add origin 远程仓库sshURL
- http协议方式:
$ git remote add origin 远程仓库URL
ssh认证方式需要ssh密匙认证,而http协议方式不需要。
origin
为默认的远程仓库名,也可改为自定义的名字。
查看已添加的远程仓库
$ git remote
将本地仓库代码推送到远程仓库
$ git push origin master
origin
指远程仓库名称master
指本地分支名称
从远程仓库克隆到本地
$ git clone 远程仓库URL
克隆到本地的地址为当前GIT命令行的路径。
从远程仓库同步最新代码
$ git pull
6.分支管理
创建与切换分支
$ git checkout -b 分支名
git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令:
$ git branch 分支名
//创建
$ git checkout 分支名
// 切换
查看分支
$ git branch
合并分支
$ git merge 分支A
将分支A合并到当前分支
解决冲突
和SVN的操作近似:
手动解决–>git add–>git push
7.在Idea上开启使用GIT
这式,左边项目预览里的文件会变色(红色为未提交,绿色为已提交),右上角会有更新和上传的按钮,说明已经开始成功。
其他上述操作在Idea里皆为图形界面操作,较为简单不再赘述,实在遇到不会的,可以找到进入项目文件夹打开命令行手动操作。
小汤学编程之JavaEE学习day07——版本控制工具:SVN、GIT相关推荐
- 小汤学编程之JavaEE学习day06——LayUI
一.LayUI简介 1.下载 2.入门案例 二.栅格布局 三.图标 四.按钮 1.按钮类型 2.主题 3.尺寸 4.圆角 5.按钮组 五.后台布局 六.表格数据 ...
- 小汤学编程之JavaEE学习day08——Maven
一.Maven介绍 1.什么是Maven 2.Maven的功能 3.什么是构建 4.项目的构建方式 二.Maven的安装 1.下载 2.安装 3.配置 ...
- 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax
一.会话管理 1.HTTP协议 2.会话的概念 3.会话跟踪技术 4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传 2.下载 3.上传和下载合并优化成 ...
- 小汤学编程之JavaEE学习day01——HTTP简介、B/S与C/S应用、连接的建立与断开、Tomcat
一.HTTP简介 1.HTTP请求报文 2.HTTP响应报文 二.B/S与C/S应用 三.连接的建立与断开 1.连接的建立(三次握手) 2.断开连接(四次挥手) 四.连接的建立与断开 ...
- 小汤学编程之JavaEE学习day10——Spring
一.Spring简介 1.特点 2.核心特性 3.两大核心 二.Spring环境搭建 1.导包 2.准备数据库和表.实体类 3.定义dao层接口和接口映射文件 ...
- 小汤学编程之JavaEE学习day09——Mybatis
一.Mybatis简介 1.官网 2.Mybatis是什么 3.有何作用 4.扩展:Hibernate 二.Maven介绍 1.导包 2.准备数据库和表.实体类 ...
- 小汤学编程之JavaEE学习day04——EL表达式、JSTL
一.EL表达式 1.EL表达式简介 2.禁用EL 3.EL中的11个隐式对象 4.EL表达式的作用 二.JSTL 1.引入步骤 2.通用标签 3.条件标签 ...
- 小汤学编程之JavaEE学习day03——JSP组成结构、JSP原理、JSP生命周期、JSP九大内置对象、四大作用域、JSP的MVC模式
一.JSP组成结构 二.JSP的原理 1.JSP的运行原理 2.分析JSP所生成的Servlet代码 3.JSP的执行过程 三.JSP生命周期 四.JSP九大内置对象 五.JSP四大作 ...
- 小汤学编程之JavaEE学习day02——Servlet使用步骤、生命周期、接收与返回数据、GET与POST、转发与重定向
一.Servlet使用步骤 二.Servlet生命周期 三.Servlet接收与返回数据 四.GET请求与POST请求的区别 五.转发与重定向 一.Servlet使用步骤 servlet是运行在服务器 ...
最新文章
- Linux中shell命令的用法和技巧
- 一秒看遍10万神经元的「绚丽烟花」,AI究竟向大脑学什么?|北大陈良怡专访...
- ssm中shiro的使用
- [Android]《Android艺术开发探索》第一章读书笔记
- 做了个EMMC分析治具
- html5 写json 文件,HTML5实现本地JSON文件的读写
- codevs1197 Vigenère密码
- php soap 下载文件,允许下载SOAP API响应(PHP)中的PDF文件get(作为附件)
- minitab怎么算西格玛水平_计算西格玛水平.ppt
- 边缘计算以及kubeedge概念的通俗解释
- ECS Windows 系统蓝屏 (BSOD) 以及停止响应 (Hang) 的处理
- mysql 日志文件_mysql日志文件在哪
- 基于C语言设计的唐诗三百首
- uniapp,小程序,实现签名功能
- 爬取虎扑网站上NBA球员数据信息
- 日月光华深度学习(五)--卫星图像识别tf.data、卷积综合实例
- 苹果邮箱怎么登录qq邮箱_gmail邮箱登录官网方法
- Ubuntu20.04 安装ROS2 Foxy
- mysql高可用——MHA详细部署过程
- Python第9章 类
热门文章
- ThinkPHP 3.2版本 , 无法读取$_SESSION['verify_code']
- POJ 1862 amp; ZOJ 1543 Stripies(贪心 | 优先队列)
- android动画效果 --- 设置activity 跳转动画
- 英文标点符号翻译大全
- KTH 皇家理工学院 计算机视觉和机器学习博士生 招生
- ACM MM2021 | 腾讯优图实验室9篇论文入选,含弱监督图像描述及定位、表格结构识别等研究方向...
- CVPR 2021 底层视觉最新进展分享
- 修复100年前北京晚清影像,和马斯克谈两亿的项目,AI技术的底层逻辑是什么?...
- 利用NAS寻找最佳GAN:AutoGAN架构搜索方案专为GAN打造
- Pygame实战:升级后的2048小游戏—解锁新花样 根本停不下来