安装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/passwdgituser: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了一个空的储存库。
 
                    
 
                                         
                                                                                         
                                                                                         
                                                                                        