慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

阮一峰的网络日志

無文章

至简之 Git 服务器
阮一峰 · 2022-10-23 · via 阮一峰的网络日志

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

今当论 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 服务器。

六、参考链接

(终)