Git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。Git是目前世界上最先进的分布式版本控制系统(没有之一)。那什么是版本控制系统?如果你曾经做过设计或者修改过PS文件,一定有过这样命名“初稿”,“初稿-1”“终稿”“这一定是终稿”“在改稿我就……”……
过了几天,你想找回当时写过某段文字,只好一个文件一个文件去看。看着一堆文件,想删又不敢删,怕那一天用到。有时候和同事协作修改一个文件,你这边改完了又得发给对方去修改,又费时又费力。有没有那个软件能让我方便修改代码,同样又能快速分享给同事呢?有的,这就是Git服务器,今天我们来教大家搭建一个Git。
想要搭建Git服务器需要服务器才能正常使用,想学习的同学可以去腾讯云开发者实验室免费领取主机进行在线手动实验。如果打算长期使用,也可以购买一台服务器。
安装Git
我们这里提供两种方式进行Git的安装,我这使用的系统是Ubuntu Server 16.04.1 LTS版本,其他操作系统安装请参考官方文档。
使用apt包管理器安装(推荐)
我们可以使用apt包管理器进行安装,但是Ubuntu官方使用的Git版本过旧,所以我们需要添加Git官方最新版的地址进行安装,安装起来很简单,请参考下面的命令。
1 | sudo add-apt-repository ppa:git-core/ppa |
输入完成后,系统会提示
1 | Press [ENTER] to continue or ctrl-c to cancel adding it |
我们只需要按下键盘上的回车键即可添加官方最新版地址,然后我们使用sudo apt-get update
来更新列表,更新完成后使用sudo apt-get install git
来安装Git。
1 | sudo apt-get update |
等待几分钟后,Git就完成了安装,我们可以通过下面的命令来检查Git是否安装完成。
1 | git --version |
当提示类似如下后,我们的Git就安装完成了。
1 | ubuntu@VM-0-7-ubuntu:~$ git --version |
使用编译安装
在编译之前,我们需要安装一些编译所需要的软件,你可以直接使用下面的命令进行安装。
1 | sudo apt-get update |
几分钟后,这些软件就被安装完成,我们可以开始下载Git的源码包了。Git源码存储在Github上,因为我们没有下载安装Git,所以我们不能使用git clone
功能去克隆这个项目,但是我们可以通过别的方法去下载Git源码,我们点击这里查看Git已经发布版本的源码。找到最新版,然后复制其源码地址。
然后使用wget
命令将其下载到你的服务器上,之后将其解压出来。
1 | wget -c https://github.com/git/git/archive/v2.19.1.zip -O git.zip |
现在,我们已经下载并解压完成,可以开始对其进行编译了。输入make
然后耐心等待,编译速度看你当前服务器的配置。
1 | make |
你会看到类似下面的输入
1 | GIT_VERSION = 2.19.1 |
编译完成后什么都没有提示,我们就可以开始安装了。输入sudo make install
耐心等待。
1 | sudo make install |
同样,会有一大堆输出。具体如下:
1 | SUBDIR git-gui |
接下来,我们就可以看看是否编译安装完成了。
1 | ubuntu@VM-0-7-ubuntu:~$ git --version |
我们看到,git命令已经正确安装。
创建Git账户及密码
接下来,我们创建一个名为gituser
的账户给Git使用,可以使用下面的命令。
1 | sudo useradd -m gituser |
之后,为这个账户设置密码
1 | sudo passwd gituser |
这里输入密码的时候是没有提示的,输入一遍密码后回车在输入一遍即可创建。为了安全考虑,接下来我们要设置限制 git 账号的 ssh 连接只能是登录 git-shell,在你的命令行中输入下面的命令检查git的安装位置。
1 | which git |
可能输出是这样子的,我们记下这个位置,我这里是通过编译安装的,所以位置在/home/ubuntu/bin
,其他人位置会有所不同。
1 | ubuntu@VM-0-7-ubuntu:~/bin$ which git |
之后我们编辑/etc/passwd
这个文件,找到gituser
行,然后改为下面的代码。
1 | sudo nano /etc/passwd |
1 | gituser:x:1000:1000::/home/gituser:/home/ubuntu/bin/shell |
注意将/home/ubuntu/bin
更换为上一步你用which git
找到的目录。
初始化Git仓库
接下来我们创建/data/git
目录用于存放Git仓库。
1 | sudo mkdir /data/git |
创建完成后,我们初始化这个仓库。
1 | sudo git init --bare first.git |
我们远程项目就已经创建了,最后同样是为了安全考虑,我们给Git仓库目录设置用户和用户组并设置权限。
1 | sudo chown -R gituser:gituser /data/git |
从本地clone你在服务器的项目
接下来,我们就可以开始测试你在远程服务的项目是否能正常clone了,请在本地电脑使用下面的命令。
1 | git clone gituser@你的服务器的地址:/data/git/first.git |
这时,你可能会看到如下输出
1 | E:\Desktop>git clone [email protected]:/data/git/first.git |
注意,系统会要求你输入密码,输入的时候没有显示,输入完成回车即可。这时,系统提示你已经完成clone
,并且因为我们在储存库没有任何文件,系统提醒我们可能clone
了一个空的储存库。
总结
至此,Git 服务器搭建完成, 从此以后你可以方便地将你的本地代码提交到 Git 服务器托管了。如果自己无条件或不想搭建Git服务,欢迎大家使用免费的腾讯Git代码托管(工蜂)服务,腾讯云为开发者提供基于 Git 的在线代码托管工具,包含代码提交/存储/下载/复刻/分支/历史/比对/合并等功能。可一站式完成对代码及代码质量管理,项目及项目人员管理,大大提升研发效率。有任何使用问题欢迎大家留言评论哦!