一、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里皆为图形界面操作,较为简单不再赘述,实在遇到不会的,可以找到进入项目文件夹打开命令行手动操作。