svn和git分别是目前使用最广泛的两种版本控制器。
SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器;这是两者之间最核心的区别。
这只是概念,我是百度的,看的我自己都眼晕。
说到区别,我自己的理解是:
svn比较老,git比较新,svn一般在国企会用的多,互联网估计都是git了。
git在本地有个仓库,svn在本地只是文件的备份。
svn的大多数操作要和中央仓库同步,比如看历史,断网下根本看不了,git还是可以看到,因为它也是个仓库;
svn提交必须和中央仓库同步提交,git可以先提交到本地仓库,需要提交到远程仓库的时候再push。虽然git提交也是在本地,但是它提交了,已经产生了提交信息,本地的改动就会记录下来。
首发地址:
品茗IT-同步发布
品茗IT提供在线支持:
一键快速构建Spring项目工具
一键快速构建SpringBoot项目工具
一键快速构建SpringCloud项目工具
一站式Springboot项目生成
Mysql一键生成Mybatis注解Mapper
Mysql一键生成SpringDataRest项目
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
svn一般不会让你本机安装的,除了运维,需要在服务器上安装,我以前安装过,做了点记录,这里拿出来说下。
这里只说yum安装。
mkdir svn
yum -y install subversion
svnadmin create /svn/data
vi svnserve.conf
:
anon-access = none 使非授权用户无法访问
auth-access = write 使授权用户有写权限
password-db = passwd .conf 指明密码文件路径
authz-db = authz.conf 访问控制文件
vi passwd
:
username1 = password1
username2 = password2
vi authz.conf
:
[/svndata/repos] 中括号里指定路径
user1 = rw 读写
user2 = r 读
svnserve -d -r /svn/data
:
kill svnserver
:
apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议:
yum install httpd
apache操作svn模块:
yum install mod_dav_svn
cp httpd.conf httpd.conf.bak
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
Listen 6060
DAV svn
SVNParentPath /svn
# Authentication: Basic
AuthName "Subversion repository"
AuthType Basic
AuthUserFile /svn/data/conf/passwd
#AuthzSVNAccessFile /svn/data/conf/authz
# Authorization: Authenticated users only
#
Require valid-user
#
将用户apache加入root组
usermod -a -G root apache
让group对/var/svn/repo1目录也有写权限
chmod -R g+w /var/svn/repo1
查看apache用户属于的组
groups apache
htpasswd -c /svn/data/conf/passwd admin
两次输入密码123456
service httpd restart
本来想写下,感觉用的人真的不多,懒得写了,我只说下地址:
当时的下载地址只有https://code.google.com/archive/p/jsvnadmin/
需要下载。
配置好麻烦,还要配置数据库、httpd之类的。
如果只是对文件做同步,可以下载小乌龟对svn进行操作。
乌龟svn地址:https://tortoisesvn.net/
安装完成后,在文件夹/文件上右键就会出现乌龟svn的选项:
SVN checkout:检出仓库最新数据
Repo-browser:浏览远程仓库
Create Repository here: 本地建立仓库
import:添加文件到仓库中。
Export:导出文件到本地。
与远程仓库连接:
操作选项:
如果是自己用,真的建开放的git仓库,你安装了git,你本地就是个仓库,而远程的仓库,则有:
全球最大的代码托管平台:github就是一个开放的git仓库。
gitee是国内的一个git仓库,相比github,是真的不行。但是网速好啊。
Github地址:https://github.com
Github地址:https://gitee.com
所以,除了上面的,我们还是要说下怎么建了一个开放的git仓库:gitlab。大概绝大多数公司都在用它了。
官网地址:https://git-scm.com/download/win
下载git,按照提示一路走下去就完事儿了。
安装完成后,鼠标右键后会出现:
我们本机装git,一般都是用来连接远程的,当然也可以在本地建一个新仓库,但要想给别人用,还是要将本地仓库同步到远程公共仓库,或者自建gitlab。
至于gitlab安装方法,我当一次大自然的搬运工:原文
大致流程:
官网:https://about.gitlab.com/
国内镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
sudo yum install curl policycoreutils openssh-server openssh-clients policycoreutils-python
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm
修改配置文件:/etc/gitlab/gitlab.rb
修改external_url 的地址为:http://192.168.56.12
修改完主配置文件后,使用gitlab-ctl reconfigure重新配置gitlab
重新配置gitlba后,在浏览地址栏中输入http://192.168.56.12
克隆远程仓库(下载到本地):git clone https://gitee.com/ffch/JpaMapper.git
创建本地仓库(在要创建项目下执行):git init
检查当前文件状态:git status
检查当前文件状态:git status
跟踪新文件(新建的文件一定要用git add):git add 文件名/通配符
查看差异:git diff
提交差异:git commit -m "test"
查看提交记录:git log
从远程仓库中抓取与拉取:git fetch
从远程仓库中抓取与拉取并合并:git pull
推送到远程仓库:git push
提交回退:git reset
,注意参数–soft 和 --hard 的区别,–hard会擦除本地改动。
推送到远程仓库:git push
打标签:git tag v1.0
列出标签:git tag
有改动是这样的,会有个> 号:
在team中找到commit:
提交:
同步到远程:
这里就说这几个简单的操作了,其他的稍微摸索下就会了。
Spring组件化构建
SpringBoot组件化构建
SpringCloud服务化构建
喜欢这篇文章么,喜欢就加入我们一起讨论Java Web吧!