打印

Centos 6.5搭建Git服务器(使用gitosis管理),Win7做客户端(使用totoiseGit)

[复制链接]
170|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你说说说说|  楼主 | 2018-9-21 08:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假设CentOS6.5的IP地址为192.168.0.10,centos上有一个普通用户skefer以及root超级用户

Win7的IP地址为192.168.0.20, 用户名为 tangpeng





1.Centos6.5上登录用户为skefer

1.执行以下命令安装git环境

    [skefer@localhost ~]$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git

2. 输入git --version 查看git是否安装好

    [skefer@localhost ~]$ git --version

    #如果安装好的话,应该输出 git version 1.7.1等信息

     

3.创建Git专用用户组和用户名

    #切换到root模式

    [skefer@localhost ~]$ su root

    #添加git组

    [root@localhost ~]# groupadd gitgroup

    #创建git用户

    #-d /git的意思是将git用户的主目录指定为/git,-g gitgroup的意思是设置gitgroup为git这个用户所在用户组

    #如果不想修改默认主目录,可以这样写 useradd -d /home/git -g gitgroup -m git

    #创建git主目录

    [root@localhost ~]# mkdir /git  

    #创建git用户

    [root@localhost ~]# useradd -d /git -g gitgroup -m git    #为git创建密码

    [root@localhost ~]# passwd git

    #修改权git用户主目录权限

    [root@localhost ~]# chown - R git:gitgroup /git 4.创建ssh密钥

    [git@localhost ~]$ ssh-keygen -t rsa

    # 默认情况下,公钥和私钥会保存在~/.ssh目录下,有这些文件:id_rsa  id_rsa.pub  known_hosts

     #将公钥拷贝到/tmp文件夹下

    [git@localhost ~]$ cp .ssh/id_rsa.pub /tmp/git.pub

4. 安装gitosis管理工具

    #安装gitosis运行环境

    [root@localhost ~]#  yum install python python-setuptools

    #下载gitosis并安装

    [root@localhost ~]#  cd /tmp

    [root@localhost ~]#  git clone git://github.com/res0nat0r/gitosis.git

    [root@localhost ~]#  cd gitosis

    [root@localhost ~]#  python setup.py install

    #显示Finished processing dependencies for gitosis==0.2即表示成功

    #切换到git用户

    [root@localhost ~]#  su git

    [git@localhost root]$  cd ~

    #初始化gitosis

    [git@localhost ~]$ gitosis-init < /tmp/git.pub

    [git@localhost ~]$ chmod 755 /git/repositories/gitosis-admin.git/hooks/post-update

    #删除authorized_keys中除了gitosis生成key之外的key

    [git@localhost ~]$ vi ~/.ssh/authorized_keys

    #如果有###文字,这个是gitosis生成的,不要去删除。删掉其他的sshkey就行了,不然会造成gitosis无法使用



5.上传客户端的sshkey公共密钥

    在win7上安装mysigit,tortoisGIT,安装完毕后,运行附件->Puttygen,生成公钥和私钥,其中私钥保存在本地,将公钥保存为tangpeng.pub

    运行git-bash,定位到pub文件所在位置,然后使用scp tangpeng.pub skefer@192.168.0.10:/tmp这个命令,将windows客户端的公钥传到服务器上。(注意,我有skefer用户的密码,可以使用这个账户上传windows客户端的公钥。如果有root的密码,也可以使用root账户上传)

   

6.配置服务器上的gitosis

    #配置gitosis

    [git@localhost ~]$ git clone git@192.168.0.10:gitosis-admin.git

    [git@localhost ~]$ cd gitosis-admin/

    #添加windows客户端的公钥

    [git@localhost gitosis-admin]$ cp /tmp/tangpeng.pub keydir/



7.添加GIT项目

    [git@localhost gitosis-admin]$ vi gitosis.conf

    # [gitosis]

    # [group gitosis-admin]    # writable = gitosis-admin

    # members = a@server1

    # [group developers]

    # writable = helloworld

    # members = tangpeng

    #保存并同步项目

    [git@localhost gitosis-admin]$ git add.

    [git@localhost gitosis-admin]$ git commit -am "添加helloworld项目,授权该项目为tangpeng使用"

    [git@localhost gitosis-admin]$ git remote add origin git@192.168.0.10/gitosis-admin.git

    [git@localhost gitosis-admin]$ git push origin master



8.在win7客户端上,创建项目并同步到服务器

   创建文件夹helloworld

   鼠标右击->Git在这里创建版本库->确定

   鼠标右击->Git同步

   在远端url处,点击管理,增加远端git服务器位置

   进入后,远端填写"origin",URL填写"git@192.168.0.10:helloworld.git",putty密钥填写之前win7上使用Puttygen生成的私钥

   点击保存->确定

   点击推送,然后项目就能推送到远端服务器了。



剩下是git的具体使用方法,可以使用gitbash命令行,也可以使用totoisegit客户端,各有优势。







参考**:

http://wiki.ubuntu.org.cn/Git%E6%9C%8D%E5%8A%A1%E5%99%A8Gitosis%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

355

主题

355

帖子

1

粉丝