svn和git的安装使用

1.1subversion安装
yum install -y subversion httpd

1.1.1服务的准备
使用cat /etc/service |grep svn 可以看到服务的默认端口3690

[root@master01 ~]# cat /etc/services |grep svn
svn             3690/tcp                        # Subversion
svn             3690/udp                        # Subversion
svnetworks      2973/tcp                # SV Networks
svnetworks      2973/udp                # SV Networks
svnet           3413/tcp                # SpecView Networking
svnet           3413/udp                # SpecView Networking
ml-svnet        4171/tcp                # Maxlogic Supervisor Communication

mkdir /webdept 创建svn的主目录

1.1.2 创建版本库(项目分支)

svnadmin create /webdept/www.zhuifeng.cn
svnadmin create /webdept/www.ilinux.io
[root@master01 ~]# ll /webdept/www.zhuifeng.cn/
总用量 8
drwxr-xr-x. 2 root root  54 8月  22 19:21 conf
drwxr-sr-x. 6 root root 233 8月  22 19:21 db
-r--r--r--. 1 root root   2 8月  22 19:21 format
drwxr-xr-x. 2 root root 231 8月  22 19:21 hooks
drwxr-xr-x. 2 root root  41 8月  22 19:21 locks
-rw-r--r--. 1 root root 229 8月  22 19:21 README.txt
[root@master01 conf]# ls 
authz  passwd  svnserve.conf

svnadmin create命令创建了分支的架构
conf下存放用户的账号密码权限等配置文件

2.1.1svn运行方式之独立运行模式
启用svnserver.conf如下几行

[root@master01 conf]# grep ^[a-z] svnserve.conf 
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository #登录提示语

在passwd里添加用户和密码

[root@master01 conf]# grep ^[^#] passwd 
[users]
Make = 123456
MAN = 123456
top = 123456

在authz里定义用户和用户组权限

[root@master01 conf]# grep ^[^#] authz 
[groups]
check = Make,MAN #定义check组
[/]                             #定义当前版本库根目录及www.zhuifeng.cn
top = rw
@check = r              #定义check组权限
* =                            #定义其他人的权限,为空则没有任何权限

2.1.2 运行svn

svnserve -d -r /webdept/ #会运行svn下所有分支,在目录后指向某个分支可单独运行那个分支
[root@master01 conf]# netstat -tunlp|grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      70390/svnserve

-d 以守护进程运行
-r 以root用户运行
服务已启动

2.1.3 建立测试页面来提交代码
mkdir /localsvn
cd /localsvn && touch 1.html 2.jsp 3.php
提交这三个页面
svn import /root/localsvn/ file:///webdept/www.zhuifeng.cn/ -m "first edit"
-m 版本信息

2.1.4下载代码

[root@master01 ~]# svn checkout svn://10.10.10.27/www.zhuifeng.cn/ downsource #downsource会在当前目录下自动建立并将代码down到此处
认证领域:  My First Repository
“root”的密码: 
认证领域:  My First Repository
用户名: Make
“Make”的密码: 

-----------------------------------------------------------------------
注意!  你的密码,对于认证域:

    My First Repository

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?no
A    downsource/3.php
A    downsource/2.jsp
A    downsource/1.html
取出版本 1。

2.1.5写数据并提交
echo "

svn

" > downsource/1.html
svn commit -m "second edit"
Make用户没有写权限
按空格跳过切换top用户提交

2.2svn的httpd运行
svn的web运行方式和独立运行方式是不相关的
svn的httpd运行依赖httpd的mod_dav_svn.so模块和mod_authz_svn.so模块
yum install mod_dav_svn -y
ls -l /etc/httpd/modules/mod_dav_svn.so
ls -l /etc/httpd/modules/mod_authz_svn.so

vim /etc/httpd/conf.d/subversion.conf

   DAV svn                     
   SVNParentPath /webdept                         #svn根目录              
      AuthType Basic                              #Basic认证方式                          
      AuthName "www.zhuifeng.cn website Dept"       #认证显示信息,提示信息       
      AuthUserFile /webdept/svn/passwd            #用户密码文件          
      AuthzSVNAccessFile  /webdept/svn/authz      #访问控制权限文件      
      Require valid-user                          #要求正式用户,不能匿名                          

复制粘贴请使用这个:

   DAV svn
   SVNParentPath /webdept
      AuthType Basic
      AuthName "www.zhuifeng.cn website Dept"
      AuthUserFile /webdept/svn/passwd
      AuthzSVNAccessFile  /webdept/svn/authz
      Require valid-user


mkdir /webdept/svn
htpasswd -c /webdept/svn/passwd user1 #apache创建认证用户 ,第一次创建要加-c,第二次以后不需要
htpasswd /webdept/svn/passwd user2
htpasswd /webdept/svn/passwd user3

[root@master01 downsource]# cat /webdept/svn/passwd 
user1:$apr1$zgqCz0ZE$kjkdFtzJEmGcjQC4rHZ2X.
user2:$apr1$g9SLwEkN$fpymAz51r6mUnLsXEqQEb1
user3:$apr1$6Cs9TpLO$asS/h2KMtnN.9MHs1nvNT0

[root@master01 downsource]# cat /webdept/svn/authz 
[groups]
all = user1,user2
[/]
#user1 = rw
[www.zhuifeng.cn:/]
@all = rw
[www.ilinux.io:/]
user2 = rw
user3 = rw 

启动httpd
访问http://10.10.10.27/webdept/www.zhuifeng.com

3.1svn正式使用方式TortoiseSVN,windows平台的
安装之后写入http://10.10.10.27/webdept/www.zhuifeng.com
把 /webdept/www.zhuifeng.com的属主组改apache
即可
4.1git
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中

基本的 Git 工作流程如下:
1.在工作目录中修改某些文件。
2.对修改后的文件进行快照,然后保存到暂存区域。
3.提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

4.1.1安装git的server
yum install git -y
useradd -m git 创建git用户
echo git:123456|chpasswd
su git 切换至git
cd 切换至家目录
mkdir project.git 建立仓库

[git@master01 project.git]$ git init --bare
初始化空的 Git 版本库于 /home/git/project.git/

4.1.12 git的常用命令
git config --global user.name “name“ #设置全局用户名
git config --global user.email mail #设置全局邮箱
git config --global --list #列出用户全局设置
git add index.html #添加文件到暂存区
git commit -m “描述内容“ #提交文件到工作区
git status #查看工作区的状态
git push #提交代码到 git 服务器上
git pull #获取代码到本地
git log #查看操作日志
vim .gitignore #定义忽略文件
git reset --hard HEAD^ #git 版本回滚, HEAD 为当前版本,加一个为上一个,^为上上一个版本
git reflog # #获取每次提交的 ID,可以使用--hard 根据提交的 ID 迚行版本回退
git reset --hard 5ae4b06 #回退到指定 id 的版本

git branch #查看当前所处的分支

git checkout -- file #从服务器更新某个那文件覆盖本地的文件

4.1.2方法1
在客户机上同样安装git,mkdir git
第一次使用时要配置git工作环境,要配置个人的用户名称和电子邮件地址
git config --global user.name "XXXX"
git config --global user.name "[email protected]"
vim /root/.gitconfig
此为全局配置,如果要只针对某个新项目可以这样做
git clone http://10.10.10.27/xuegod/xuegod-web1.git
cd xuegod-web1
git config user.name "XXXX"
git config user.name "[email protected]"
或 vim .git/config

cd git
git clone [email protected]:/home/git/project.git/
echo "No.1" > 1.html
git add .
git commit -m "NO.1"
git remote add orgin [email protected]:/home/git/project.git/
git push origin master

回滚操作
删除index.html
使用git reset --hard HEAD回滚到最新版
查看每次提交的id
[root@master01 xuegod-web1]# git reflog
a7ea0fd HEAD@{0}: commit (initial): add bbs

在服务器创建分支
[root@xuegod63 xuegod-web]# git branch bbs #创建一个分支
[root@xuegod63 xuegod-web]# git checkout bbs #切换到分支 bbs
[root@xuegod63 xuegod-web]# git branch #查看当前所处的分支
[root@xuegod63 xuegod-web]# vim a.txt #随意在里面写一些内容
[root@xuegod63 xuegod-web]# git add a.txt
[root@xuegod63 xuegod-web]# git commit -m "add a.txt“ #提交到暂存区中
[root@xuegod63 xuegod-web]# git push -u origin bbs #上传到分支 bbs 分支上

方法2:windows的git工具

Git 中 pull 和 clone 的区别

clone 是本地没有 repository 时,将远程 repository 整个下载过来。

pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码merge。

你可能感兴趣的:(svn和git的安装使用)