私有Git搭建

在团队工作或者个人开发中,版本控制尤为重要。折腾了一天,搭建了一个Git服务,用于项目开发的版本控制。搭建的Git是通过SSH传输的,并配置了SSH的密钥登录。

Git服务端安装

很简单,一句话搞定:

sudo apt install git

Git用户

创建用户

sudo useradd git -s /usr/bin/git-shell -m

在这里我们使用git-shell以保证安全。如果使用bash,就相当于允许git用户登录了,这样就显得很不安全。git-shell是git自带的一个仅用于Git协议的执行环境。

在这里还需要注意一点,就是要创建家目录/home/git,主要是用来存放SSH密钥,以实现免密码登录。(SSH服务端的不同用户的秘钥存储在用户自己的家目录.ssh文件夹下)

创建密钥对

在服务器上执行:

cd /home/git/
ssh-keygen
cd /home/git/.ssh/

然后会看见这个文件夹下生成了id_rsaid_rsa.pub文件。执行:

cat id_rsa.pub >> authorized_keys

即将公钥放置到authorized_keys文件夹里。如果要生成多个密钥对,则需手动添加到这个文件中,一行一个公钥。

最后将id_rsa这个私钥保存到客户端电脑上,以待导入。这样一个密钥对就生成成功了。

创建代码仓库

假设我想创建一个新项目,项目将创建在/home/git/blablabla

sudo -u git git --bare init blablabla

或者写blablabla.git也行

这句指令首先指明,使用git用户身份执行,然后叫git程序新建了一个仓库叫blablabla。此时blablabla内容结构如下:

blablabla/
|-- .git/
    |-- HEAD
    |-- config
    |-- ...

.git内的文件为git配置文件之类的,记录了代码仓库的信息。blablabla下其他文件夹后则存放代码文件夹。

这里还需要注意一点,在服务器上新建仓库,一定要带上–bare参数。否则会出现客户端无法上传代码的情况。

GUI客户端

Git的bash客户端就不再多说了,用bash的大佬根本不需要我介绍了……下面介绍几款支持Git的客户端软件。

GitGUI

Git的官方GUI版本,小巧,使用了一下,感觉界面有点不友好。

SourceTree

SourceTree是一个比较老牌的Git图形化客户端了。使用了一个下午,爱不释手。感觉其界面与时俱进,Word2012风格,还挺好看。不过要注册一个SourceTree账号才能安装,才能安装或连接私有Git仓库。注册就注册呗。

VisualStudio Code

惊不惊喜?意不意外?VS居然也支持Git!不过它只支持本地Git仓库貌似,没法PULL仓库到服务器。不过貌似有插件可以拓展这一功能。

总结

简单粗暴,Git的搭建就完成了。当然了,这里只介绍了Git服务的简单搭建,但是关于Git究竟应该怎么用,才能提高工作效率,提高合作效率,还是需要日后在日常使用中总结了。

待研究

能否对Git用户进行chroot?
如何搭建HTTP协议的Git?(类似于GitHub的网页)
Git究竟是如何提高工作效率的?高级用法有哪些?

发表评论