程序之码仓,恒需寄存于服务器,方为安妥,亦便取用。
今当论 Git 之服务器。

一、码仓寄存之务
常情之下,不欲自设 Git 服务器,宜用成之服务,即码仓寄存之务。此皆无偿。
其中,唯 Gitee 为华夏之务,余皆域外之务。
此等外务,不须赘言。吾文所重非此,乃欲论若必自建 Git 服务器,当何以为之。
二、Git 服务器之软件
自建 Git 服务器者,盖因外网难达,不欲代码寄于他人之服务器,或有所定制之需耳。
于此,可择开源之 Git 服务器软件。
诸此软件中,Gogs 之安装最简,然功能稍弱。功能愈强,安装愈繁。
若惟欲远存一码,不介乎有无网界,他功能亦弗顾,则上列诸软,实毋须安,一行令足矣。
三、Git 仓库名 SSH 传
谙 Git 者或知,Git 默认支二种传议:SSH 与 HTTP/HTTPS。
服务器多自备 SSH,此谓,吾辈可弗安何,独凭 SSH,即将仓推至远伺。
故,令惟一行足矣。吾辈但于远伺上,立同名 Git 仓,伺即架设成。
$ git init --bare [仓库名].git
上令中,各部之义如左。
(1)git init:初始化一 Git 仓。
(二)--bare:示新仓无需工目录,但立 Git 资目录。
(三)[仓库名].git:定仓名,如仓名example,则须立名example.git之 Git 资目录。
行此命后,简易 Git 服务器即成。后,可通 SSH 连,将本地码推至此远 Git 仓。
四、操作示
下,吾示其全操作。
操作分二,先于远服,后于本机。
4.1 远服操作
下之操作,皆于远端之服务器而为之,设君已以 SSH 登陆焉。不谙 SSH 者可参此篇《SSH 入门》。
登录远端服务器之旨,主在新建一专用户,凡 Git 之操作,皆由是用户行之。此步虽非必,然如此则后之操作较灵活(如仓库可令多人共之)。
$ sudo mkdir /home/git $ sudo useradd git $ sudo mkdir -m 700 /home/git/.ssh $ sudo cp ~/.ssh/authorized_keys /home/git/.ssh/
前之命令,其义如下。
(1)新建新用户之主目录/home/git。
(2)新建一用户,名曰git。
(3)新建新用户之 SSH 目录/home/git/.ssh。
(四)当将当前用户之公钥,抄录于git用户,以便密钥登陆,详述可参《SSH 密钥登录》。
若汝仅以密码登录,不使密钥登录,则前述第三步、第四步,非所必行,然须为git用户设密码,其令如下。
$ sudo passwd git
4.2 本机计算机操作
后之操作,皆于本地计算机毕。
前一小节之远程服务器,其 IP 地址为192.168.1.25,本地之 Git 仓库名为example。
$ ssh [email protected] git init --bare example.git
前令中,ssh [email protected],乃示以git者之身份,登于远伺。其后之式,乃SSH之法,示登伺后于远伺所行之命,即新辟一远Git之数录于example.git。
此命既行,则Git伺已成,便可推码矣。
$ cd example $ git remote add myServer [email protected]:example.git $ git push myServer master
上命先入本地之库,为远伺加别名,复将码推之。
五、他法一
前例用git init --bare命于远伺新辟Git之数录。然Git之数录,实乃常录,直自本地之机抄之亦可。
$ scp -r example/.git [email protected]:/home/git/example.git
上命用scp之器将本地之example库中者.git子目录,复至远服务器之目录example.git如是,亦能立 Git 服务器。
六、参考链接
(终)












