Git服务器搭建和配置

Git服务器搭建和配置

参考博客:

1.http://blog.csdn.net/michaelhan3/article/details/51637271

2.http://blog.csdn.net/ice520301/article/details/6142503

3. http://blog.csdn.net/tommy_wxie/article/details/38779667

之前我们实验室的服务器主机由于boot空间不足,系统每次会被迫重启,重启后系统会优先选择最新的内核,但是最新的内核损坏了,所以每次重启后无法进入系统。我通过Recovery Mode进入系统,删除卸载内核都解决不了开机问题,于是修改开机启动项,结果系统彻底崩了。Git服务器也坏掉了,只能重装系统,然后重新搭建Git服务器并且配置属性。

注意:如果是第一次搭建,按照操作依次往下做就可以了;如果是服务器崩了,一定先备份Git服务器仓库的数据,然后重装系统重新搭建Git服务器。

 一、git服务器搭建过程

         搭建过程在终端中依次输入下面代码,每一行输入完回车执行完后再输入下一行。

1.安装配置git服务器

1)安装git和openssh:

sudo apt-getinstall git-core openssh-server openssh-client

2)添加用户git,该用户将作为所有代码仓库和用户权限的管理者

sudo useradd -mgit

sudo passwd git

3)建立一个git仓库的存储点:

sudo mkdir/home/git_repo

4)设置目录权限,让除了git以外的用户对此目录无任何权限:

sudo chowngit:git /home/git_repo

sudo chmod 700/home/git_repo

5)安装和配置gitosis

首先初始化服务器的git用户,为安装gitosis做准备。在任何一台机器上使用git,第一次必须要初始化一下:

git config--global user.name “myname”

git config--global user.email “myname@server“

6)安装python的setup tool, 因为gitosis的安装需要python的一工具。

  sudo apt-get install python-setuptools

7)下载安装gitosis包:

cd /tmp

git clonehttps://github.com/res0nat0r/gitosis.git

cd gitosis

sudo pythonsetup.py install

8)切换到git用户,并且将git仓库的默认目录和我们自定义的目录链接起来。

因为默认状态下,gitosis会将git仓库放在 git用户的/home/git/repositories/目录下,所以我们用ln命令将其到我们创建的git仓库/home/git_repo目录下,然后返回默认用户。

su git

ln -s /home/git_repo /home/git/repositories

        exit

  9)重新打开一个终端,生成Git服务器端公钥

ssh-keygen -trsa

         一路回车即可生成公钥,然后输入下面语句将公约保存到/tmp目录下:

scp  /路径/.ssh/id_rsa  /tmp

10)给公钥文件增加权限

在第一个终端中输入

sudo chmod a+r/tmp/id_rsa

11)运行gitosis

sudo -H -u gitgitosis-init < /tmp/id_rsa

当出现以下两句就说明已经成功,下面分别为这两句的英文和中文。

Initializedempty Git repository in /home/repo/gitosis-admin.git/

Reinitializedexisting Git repository in /home/repo/gitosis-admin.git/

初始化空的Git版本库于/home/git_repo/gitosis-admin.git/

重新初始化现存的Git版本库于/home/git_repo/gitosis-admin.git/

12)给管理文件增加执行权限

git服务器在/home/git_repo文件夹下面建立了一个存放仓库的文件夹,用来存放git的各种仓库,后缀是.git的文件夹都是git仓库。

gitosis实际上通过一个git仓库来管理配置文件,仓库就放在了/home/git_repo/gitosis- admin.git仓库中。我们需要为一个特定文件加上可执行权限:

cd /home/git

sudo passwd root

回车后设定root密码,需要输入两次,然后依次执行下列语句。

su

cd repositories

cdgitosis-admin.git/

sudo chmod 755 /home/git_repo/gitosis-admin.git/hooks/post-update

exit

13)管理gitosis的配置文件

在主文件夹目录下输入下面代码。

git clone git@IP:/home/git_repo/gitosis-admin.git

cd gitosis-admin/

进入gitosis-admin文件夹,我们看到有一个名为keydir的文件夹和一个名为gitosis.conf配置文件。Keydir文件夹存放所有需要访问git服务器的用户的ssh公钥。每个用户按照前面的办法(ssh-keygen -t rsa)生成ssh公钥文件后,把所有人的 ssh公钥文件都拿来,按名字重命名,如Luhongliang.pub,Yangguang.pub等,然后拷贝到keydir文件夹中。

14)修改gitosis.conf文件

打开gitosis.conf文件,修改成员对仓库的访问权限,然后保存退出。

[gitosis]

 

[group gitosis-admin]

writable = gitosis-admin

members =Luhongliang

 

[group teamwork]

writable = teamwork

members = Luhongliang

 

[group test]

readonly = test

members =Luhongliang

其中,红色部分为仓库名。绿色部分表示成员对该仓库有读和写的权限,而蓝色部分表示成员对该仓库只有读权限,没有写权限。

15)将配置文件推送到远端

git add .

git commit -am"/*add teamwork teamwork and test.*/"

git push originmaster

以上15步做完后,Git服务器环境已经搭建好,并且配置好了访问属性。接着可以创建仓库了。

二、创建仓库

         比如仓库名为test.git,过程如下:

         1)创建远程仓库并且初始化

 su git

         cd/home/git_repo

 mkdir test.git

         cdtest.git

         gitinit –bare

         exit

         2)创建本地仓库并且推送至远端仓库

         cd

         mkdirtest-ori

cd test-ori

git init

echo “/*Create a repository named test. */” > readme(红色部分随意写,跟操作相关)

git add .

git commit -am"initial version"

git remote addorigingit@IP:/home/git_repo/test.git

git push originmaster

         到这个地方,Git服务器已经搭建好并且创建了仓库,现在可以本地对Git仓库做相应的操作了,如克隆、上传等。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值