搭建简单的Git服务器

建立一个远程的Git仓库其实最好的选择就是使用GitHub,国内也有类似的网站GitCafe。但对于某些珍视代码的商业公司,它们不希望在网上公开公司项目的代码,又不愿意在GitHub之类的网站上使用付费功能;那就只有公司内部自己搭建一台Git服务器咯。

 

一、安装openssh和git

搭建Git服务器,需要所在的Linux电脑上安装了openssh和git:

    sudo apt-get install openssh-server openssh-client

    sudo apt-get install git

 

二、创建一个专门的Linux账户

在Linux上使用一个单独的账户来管理git仓库:

    sudo adduser git

按照提示输入密码即可,比如说,我设置的git用户的密码是"fucksvn"嘿嘿~

 

三、创建Git仓库

切换登录到git用户,在git用户的主目录下建立Git仓库:

    git init --bare Gitest.git

这样就会建立一个裸仓库——我们自己使用git管理代码是不加--bare选项的,裸仓库没有工作区,因为服务器上的Git仓库只是为了共享,方便项目成员交流代码的。

运行完这个命令,在git用户主目录下就会出现一个叫做"Gitest.git"的目录,里面的内容我并不是太关心。

在名字"Gitest.git"中,"Gitest"是项目名字,之后同志们clone的时候就会获得一个此名字的目录,用于来放代码的;".git"的结尾,是用来在Git服务器上标识它是一个Git仓库,正常使用的用户不会看到自己的git版本库名字有".git"结尾。

 

注:这一步的操作是以git用户身份,在git用户的主目录下完成的,生成的"Gitest.git"(或是自己随便起的名字)目录,以及此目录下全部内容的所有者和所在用户组都是"git",不是root或别的什么用户!

 

四、添加Git服务器的用户登录证书

这一步,可以不做,也可以以后做;不添加的话,用户每次使用这个Git仓库(clone之类的操作)都要输入git用户的密码,就是上文我设置的"fucksvn":把git用户的密码告诉项目里的所有用户,似乎并不是一个科学的方法吧。

添加的原理就是把所有用户的ssh公钥写入git用户的ssh授权文件中。

依然登录git用户,将所有用户的id_rsa.pub文件内容写入到git用户主目录下.ssh/authorized_keys中,必须一行只有一个。如果没有.ssh目录与authorized_keys文件,自己建一个就行;但是必须注意用户和用户组都是"git"。

怎么生成id_rsa.pub,好像是用户们运行ssh-keygen –t rsa。这就不多说了。

 

注:每个id_rsa.pub文件都有一行内容,写入authorized_keys中,也必须是一行只有一个用户的公钥,必须一行一个!我们可以这样操作:

    cat id_rsa.pub >> .ssh/authorized_keys

另外,authorized_keys文件的权限是"rw-r--r--",权限必须是这个;如果不是,这个文件会失效:就像它不存在一样。所以,我在前面一直强调使用git用户操作。如果使用别的用户写入,就要修改此文件的权限,一定记得最后再改回原来的权限。

 

五、禁用git用户的shell登录

这是出于安全的考虑:如果git用户的密码泄露,其他人就可以登录Git服务器,就有可能破坏Git代码库。我们可以禁止git用户的shell登录,来防止这种情况的发生。git不能使用shell登录,不会对用户通过ssh操作代码库产生影响。

    sudo vim /etc/passwd

在git对应的那一行将"/home/git:/bin/bash"改为"/home/git:/usr/bin/git-shell"。

 

六、现在就可以使用了

可以使用如下的命令下载Git仓库:(IP地址换成自己服务器的IP)

    git clone git@10.83.34.62:/home/git/Gitest.git

这个命令的意思就是:以10.83.34.62电脑上的git用户身份,克隆路径为/home/git/Gitest.git的代码库。路径要写对。这样就可以下载一个Gitest目录到当前目录下,这时候它还是空的,我们可以在里面添加代码并推送到Git远程库:git add … git commit … git push origin master 就不在这里详细说了。

 

 

www.liaoxuefeng.com 上面有包含Git的许多教程,我不少东西都是在这个网站上学习的。强烈推荐给大家!

 

 

Aningsk

2015-10-14

(呃,写了日期才想起来,同学今天生日……)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值