一、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相关推荐

  1. 小汤学编程之JavaEE学习day06——LayUI

    一.LayUI简介 1.下载     2.入门案例 二.栅格布局 三.图标 四.按钮 1.按钮类型     2.主题     3.尺寸     4.圆角     5.按钮组 五.后台布局 六.表格数据 ...

  2. 小汤学编程之JavaEE学习day08——Maven

    一.Maven介绍 1.什么是Maven     2.Maven的功能     3.什么是构建     4.项目的构建方式 二.Maven的安装 1.下载     2.安装     3.配置      ...

  3. 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax

    一.会话管理 1.HTTP协议     2.会话的概念     3.会话跟踪技术     4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传     2.下载     3.上传和下载合并优化成 ...

  4. 小汤学编程之JavaEE学习day01——HTTP简介、B/S与C/S应用、连接的建立与断开、Tomcat

    一.HTTP简介 1.HTTP请求报文     2.HTTP响应报文 二.B/S与C/S应用 三.连接的建立与断开 1.连接的建立(三次握手)     2.断开连接(四次挥手) 四.连接的建立与断开 ...

  5. 小汤学编程之JavaEE学习day10——Spring

    一.Spring简介 1.特点     2.核心特性     3.两大核心 二.Spring环境搭建 1.导包     2.准备数据库和表.实体类     3.定义dao层接口和接口映射文件      ...

  6. 小汤学编程之JavaEE学习day09——Mybatis

    一.Mybatis简介 1.官网     2.Mybatis是什么     3.有何作用     4.扩展:Hibernate 二.Maven介绍 1.导包     2.准备数据库和表.实体类    ...

  7. 小汤学编程之JavaEE学习day04——EL表达式、JSTL

    一.EL表达式 1.EL表达式简介     2.禁用EL     3.EL中的11个隐式对象     4.EL表达式的作用 二.JSTL 1.引入步骤     2.通用标签     3.条件标签    ...

  8. 小汤学编程之JavaEE学习day03——JSP组成结构、JSP原理、JSP生命周期、JSP九大内置对象、四大作用域、JSP的MVC模式

    一.JSP组成结构 二.JSP的原理 1.JSP的运行原理     2.分析JSP所生成的Servlet代码     3.JSP的执行过程 三.JSP生命周期 四.JSP九大内置对象 五.JSP四大作 ...

  9. 小汤学编程之JavaEE学习day02——Servlet使用步骤、生命周期、接收与返回数据、GET与POST、转发与重定向

    一.Servlet使用步骤 二.Servlet生命周期 三.Servlet接收与返回数据 四.GET请求与POST请求的区别 五.转发与重定向 一.Servlet使用步骤 servlet是运行在服务器 ...

最新文章

  1. Linux中shell命令的用法和技巧
  2. 一秒看遍10万神经元的「绚丽烟花」,AI究竟向大脑学什么?|北大陈良怡专访...
  3. ssm中shiro的使用
  4. [Android]《Android艺术开发探索》第一章读书笔记
  5. 做了个EMMC分析治具
  6. html5 写json 文件,HTML5实现本地JSON文件的读写
  7. codevs1197 Vigenère密码
  8. php soap 下载文件,允许下载SOAP API响应(PHP)中的PDF文件get(作为附件)
  9. minitab怎么算西格玛水平_计算西格玛水平.ppt
  10. 边缘计算以及kubeedge概念的通俗解释
  11. ECS Windows 系统蓝屏 (BSOD) 以及停止响应 (Hang) 的处理
  12. mysql 日志文件_mysql日志文件在哪
  13. 基于C语言设计的唐诗三百首
  14. uniapp,小程序,实现签名功能
  15. 爬取虎扑网站上NBA球员数据信息
  16. 日月光华深度学习(五)--卫星图像识别tf.data、卷积综合实例
  17. 苹果邮箱怎么登录qq邮箱_gmail邮箱登录官网方法
  18. Ubuntu20.04 安装ROS2 Foxy
  19. mysql高可用——MHA详细部署过程
  20. Python第9章 类

热门文章

  1. ThinkPHP 3.2版本 , 无法读取$_SESSION['verify_code']
  2. POJ 1862 amp; ZOJ 1543 Stripies(贪心 | 优先队列)
  3. android动画效果 --- 设置activity 跳转动画
  4. 英文标点符号翻译大全
  5. KTH 皇家理工学院 计算机视觉和机器学习博士生 招生
  6. ACM MM2021 | 腾讯优图实验室9篇论文入选,含弱监督图像描述及定位、表格结构识别等研究方向...
  7. CVPR 2021 底层视觉最新进展分享
  8. 修复100年前北京晚清影像,和马斯克谈两亿的项目,AI技术的底层逻辑是什么?...
  9. 利用NAS寻找最佳GAN:AutoGAN架构搜索方案专为GAN打造
  10. Pygame实战:升级后的2048小游戏—解锁新花样 根本停不下来