如何部署 git 服务

阅读 510 标签:git  

安装Git

我们这里提供两种方式进行Git的安装,我这使用的系统是Ubuntu Server 16.04.1 LTS版本,其他操作系统安装请参考官方文档。

使用apt包管理器安装(推荐)

我们可以使用apt包管理器进行安装,但是Ubuntu官方使用的Git版本过旧,所以我们需要添加Git官方最新版的地址进行安装,安装起来很简单,请参考下面的命令。

sudo add-apt-repository ppa:git-core/ppa


输入完成后,系统会提示

Press [ENTER] to continue or ctrl-c to cancel adding it


我们只需要按下键盘上的回车键即可添加官方最新版地址,然后我们使用sudo apt-get update来更新列表,更新完成后使用sudo apt-get install git来安装Git。

sudo apt-get update
sudo apt-get install git


等待几分钟后,Git就完成了安装,我们可以通过下面的命令来检查Git是否安装完成。

git --version


当提示类似如下后,我们的Git就安装完成了。

ubuntu@VM-0-7-ubuntu:~$ git --version
git version 2.19.1


使用编译安装

在编译之前,我们需要安装一些编译所需要的软件,你可以直接使用下面的命令进行安装。

sudo apt-get update
sudo apt-get install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip -y


几分钟后,这些软件就被安装完成,我们可以开始下载Git的源码包了。Git源码存储在Github上,因为我们没有下载安装Git,所以我们不能使用git clone功能去克隆这个项目,但是我们可以通过别的方法去下载Git源码,我们点击这里查看Git已经发布版本的源码。找到最新版,然后复制其源码地址。


然后使用wget命令将其下载到你的服务器上,之后将其解压出来。

wget -c https://github.com/git/git/archive/v2.19.1.zip -O git.zip
unzip git.zip
cd git-*


现在,我们已经下载并解压完成,可以开始对其进行编译了。输入make然后耐心等待,编译速度看你当前服务器的配置。

make


你会看到类似下面的输入

GIT_VERSION = 2.19.1
    * new build flags
    CC credential-store.o
    * new link flags
    CC common-main.o
    CC abspath.o
......
    GEN bin-wrappers/test-line-buffer
    GEN bin-wrappers/test-parse-options
    GEN bin-wrappers/test-pkt-line
    GEN bin-wrappers/test-svn-fe
    GEN bin-wrappers/test-tool
    GEN git-remote-testgit


编译完成后什么都没有提示,我们就可以开始安装了。输入sudo make install耐心等待。

sudo make install


同样,会有一大堆输出。具体如下:

    SUBDIR git-gui
    SUBDIR gitk-git
    SUBDIR templates
install -d -m 755 '/home/ubuntu/bin'
install -d -m 755 '/home/ubuntu/libexec/git-core'
......
done && \
./check_bindir "z$bindir" "z$execdir" "$bindir/git-add"


接下来,我们就可以看看是否编译安装完成了。

ubuntu@VM-0-7-ubuntu:~$ git --version
git version 2.19.1


我们看到,git命令已经正确安装。

创建Git账户及密码

接下来,我们创建一个名为gituser的账户给Git使用,可以使用下面的命令。

sudo useradd -m gituser


之后,为这个账户设置密码

sudo passwd gituser


这里输入密码的时候是没有提示的,输入一遍密码后回车在输入一遍即可创建。为了安全考虑,接下来我们要设置限制 git 账号的 ssh 连接只能是登录 git-shell,在你的命令行中输入下面的命令检查git的安装位置。

which git


可能输出是这样子的,我们记下这个位置,我这里是通过编译安装的,所以位置在/home/ubuntu/bin,其他人位置会有所不同。

ubuntu@VM-0-7-ubuntu:~/bin$ which git
/home/ubuntu/bin/git


之后我们编辑/etc/passwd这个文件,找到gituser行,然后改为下面的代码。

sudo nano /etc/passwd


gituser:x:1000:1000::/home/gituser:/home/ubuntu/bin/shell


注意将/home/ubuntu/bin更换为上一步你用which git找到的目录。

初始化Git仓库

接下来我们创建/data/git目录用于存放Git仓库。

sudo mkdir /data/git


创建完成后,我们初始化这个仓库。

sudo git init --bare first.git


我们远程项目就已经创建了,最后同样是为了安全考虑,我们给Git仓库目录设置用户和用户组并设置权限。

sudo chown -R gituser:gituser /data/git
sudo chmod 755 /data/git


从本地clone你在服务器的项目

接下来,我们就可以开始测试你在远程服务的项目是否能正常clone了,请在本地电脑使用下面的命令。

git clone gituser@你的服务器的地址:/data/git/first.git


这时,你可能会看到如下输出

E:\Desktop>git clone gituser@118.24.118.150:/data/git/first.git
Cloning into 'first'...
The authenticity of host '118.24.118.150 (118.24.118.150)' can't be established.
ECDSA key fingerprint is SHA256:Pj1Ggh9AQxBM3kM1Be75bV9jfJ8ER7bbE1N0cm81rII.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '118.24.118.150' (ECDSA) to the list of known hosts.
gituser@118.24.118.150's password:
warning: You appear to have cloned an empty repository.

注意,系统会要求你输入密码,输入的时候没有显示,输入完成回车即可。这时,系统提示你已经完成clone,并且因为我们在储存库没有任何文件,系统提醒我们可能clone了一个空的储存库。

文章来源:网络 版权归原作者所有,如涉及知识产权问题,请权利人联系我们,我们将立即处理.
标签: git
一生所爱の赫萝
文章 92 获得 0个赞 共 0个粉丝

推荐阅读 更多精彩内容