Web基礎配置篇(七): Svn與Git的基本使用
一、概述
svn和git分別是目前使用最廣泛的兩種版本控制器。
SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器;這是兩者之間最核心的區(qū)別。
這只是概念,我是百度的,看的我自己都眼暈。
說到區(qū)別,我自己的理解是:
svn比較老,git比較新,svn一般在國企會用的多,互聯(lián)網(wǎng)估計都是git了。
git在本地有個倉庫,svn在本地只是文件的備份。
svn的大多數(shù)操作要和中央倉庫同步,比如看歷史,斷網(wǎng)下根本看不了,git還是可以看到,因為它也是個倉庫;
svn提交必須和中央倉庫同步提交,git可以先提交到本地倉庫,需要提交到遠程倉庫的時候再push。雖然git提交也是在本地,但是它提交了,已經(jīng)產(chǎn)生了提交信息,本地的改動就會記錄下來。
首發(fā)地址:
品茗IT-同步發(fā)布
品茗IT 提供在線支持:
如果大家正在尋找一個java的學習環(huán)境,或者在開發(fā)中遇到困難,可以加入我們的java學習圈,點擊即可加入,共同學習,節(jié)約學習時間,減少很多在學習中遇到的難題。
二、Svn
svn一般不會讓你本機安裝的,除了運維,需要在服務器上安裝,我以前安裝過,做了點記錄,這里拿出來說下。
2.1 安裝使用
這里只說yum安裝。
(1)新建svn 目錄
mkdir svn
(2)下載安裝svn
yum -y install subversion
(3)創(chuàng)建目錄生成配置文件
svnadmin create /svn/data
(4)修改配置文件
vi svnserve.conf:
anon-access = none 使非授權(quán)用戶無法訪問
auth-access = write 使授權(quán)用戶有寫權(quán)限
password-db = passwd .conf 指明密碼文件路徑
authz-db = authz.conf 訪問控制文件
(5)修改密碼文件,配置用戶
vi passwd:
username1 = password1
username2 = password2
(6)配置權(quán)限
vi authz.conf:
[/svndata/repos] 中括號里指定路徑
user1 = rw 讀寫
user2 = r 讀
(7)啟動svn服務器
svnserve -d -r /svn/data:
(8)結(jié)束svn進程
kill svnserver:
2.2 配置http訪問
1.安裝軟件
apache服務器,讓我們的svn 服務器支持http協(xié)議訪問,而不僅是svn://協(xié)議:
yum install httpd
apache操作svn模塊:
yum install mod_dav_svn
2.備份httpd.conf
cp httpd.conf httpd.conf.bak
3.修改httpd.conf
- (1)增加svn模塊
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
- (2)修改監(jiān)聽端口,避免占用80端口
Listen 6060
- (3)增加配置
<Location /svn>
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
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
4.讓apache用戶對”/svn/data″目錄擁有寫權(quán)限
將用戶apache加入root組
usermod -a -G root apache
讓group對/var/svn/repo1目錄也有寫權(quán)限
chmod -R g+w /var/svn/repo1
查看apache用戶屬于的組
groups apache
5. 配置用戶訪問權(quán)限
htpasswd -c /svn/data/conf/passwd admin
兩次輸入密碼123456
6. 啟動httpd服務
service httpd restart
2.3 配置SVN管理工具svnadmin
本來想寫下,感覺用的人真的不多,懶得寫了,我只說下地址:
當時的下載地址只有https://code.google.com/archive/p/jsvnadmin/
需要翻墻下載。
配置好麻煩,還要配置數(shù)據(jù)庫、httpd之類的。
2.4 SVN的使用
2.4.1 烏龜svn的使用
如果只是對文件做同步,可以下載小烏龜對svn進行操作。
烏龜svn地址:https://tortoisesvn.net/
安裝完成后,在文件夾/文件上右鍵就會出現(xiàn)烏龜svn的選項:
SVN checkout:檢出倉庫最新數(shù)據(jù)
Repo-browser:瀏覽遠程倉庫
Create Repository here: 本地建立倉庫
import:添加文件到倉庫中。
Export:導出文件到本地。
2.4.2 Svn在Eclipse的使用
與遠程倉庫連接:
操作選項:
三、Git
如果是自己用,真的建開放的git倉庫,你安裝了git,你本地就是個倉庫,而遠程的倉庫,則有:
全球最大的同性交友平臺:github就是一個開放的git倉庫。
gitee是國內(nèi)的一個git倉庫,相比github,是真的不行。但是網(wǎng)速好啊。
Github地址:https://github.com
Github地址:https://gitee.com
所以,除了上面的,我們還是要說下怎么建了一個開放的git倉庫:gitlab。大概絕大多數(shù)公司都在用它了。
3.1 Git的安裝
官網(wǎng)地址:https://git-scm.com/download/win
下載git,按照提示一路走下去就完事兒了。
安裝完成后,鼠標右鍵后會出現(xiàn):
我們本機裝git,一般都是用來連接遠程的,當然也可以在本地建一個新倉庫,但要想給別人用,還是要將本地倉庫同步到遠程公共倉庫,或者自建gitlab。
3.2 Gitlab的安裝
至于gitlab安裝方法,我當一次大自然的搬運工:原文
大致流程:
(1)地址
官網(wǎng):https://about.gitlab.com/
國內(nèi)鏡像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
(2)安裝依賴
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
(3)安裝
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
(4)配置
修改配置文件:/etc/gitlab/gitlab.rb
修改external_url 的地址為:http://192.168.56.12
修改完主配置文件后,使用gitlab-ctl reconfigure重新配置gitlab
(5)啟動
重新配置gitlba后,在瀏覽地址欄中輸入http://192.168.56.12
3.3 Git的使用
3.3.1 Git命令的使用
克隆遠程倉庫(下載到本地):git clone https://gitee.com/ffch/JpaMapper.git
創(chuàng)建本地倉庫(在要創(chuàng)建項目下執(zhí)行):git init
檢查當前文件狀態(tài):git status
檢查當前文件狀態(tài):git status
跟蹤新文件(新建的文件一定要用git add):git add 文件名/通配符
查看差異:git diff
提交差異:git commit -m "test"
查看提交記錄:git log
從遠程倉庫中抓取與拉?。?code>git fetch
從遠程倉庫中抓取與拉取并合并:git pull
推送到遠程倉庫:git push
提交回退:git reset,注意參數(shù)--soft 和 --hard 的區(qū)別,--hard會擦除本地改動。
推送到遠程倉庫:git push
打標簽:git tag v1.0
列出標簽:git tag
3.3.2 Git在Eclipse的使用
有改動是這樣的,會有個> 號:
在team中找到commit:
提交:
同步到遠程:
這里就說這幾個簡單的操作了,其他的稍微摸索下就會了。
快速構(gòu)建項目
喜歡這篇文章么,喜歡就加入我們一起討論Java Web吧!
