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

推薦訂閱源

博客园 - 司徒正美
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

阮一峰的网络日志

科技爱好者周刊(第 396 期):互联网通信的替代方案 科技爱好者周刊(第 396 期):互联网通信的替代方案 - 阮一峰的网络日志 科技爱好者周刊(第 395 期):软件开发的第三种方式 科技爱好者周刊(第 395 期):软件开发的第三种方式 - 阮一峰的网络日志 科技爱好者周刊(第 393 期):脑腐状态 科技爱好者周刊(第 392 期):axios 投毒与好莱坞式骗术 科技爱好者周刊(第 391 期):AI 的贫富分化 科技爱好者周刊(第 390 期):没有语料,大模型就是智障 套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的"套壳"疑云 科技爱好者周刊(第 389 期):未来如何招聘程序员 科技爱好者周刊(第 388 期):测试是新的护城河 零安装的"云养虾":ArkClaw 使用指南 科技爱好者周刊(第 387 期):你是领先的 科技爱好者周刊(第 386 期):当外卖员接入 AI 字节全家桶 Seed 2.0 + TRAE 玩转 Skill 科技爱好者周刊(第 385 期):马斯克害怕中国车企吗? 智谱旗舰 GLM-5 实测:对比 Opus 4.6 和 GPT-5.3-Codex 科技爱好者周刊(第 384 期):为什么软件股下跌 科技爱好者周刊(第 383 期):你是第几级 AI 编程 Kimi 的一体化,Manus 的分层 科技爱好者周刊(第 382 期):独立软件的黄昏 AI native Workspace 也许是智能体的下一阶段 科技爱好者周刊(第 381 期):中国 AI 大模型领导者在想什么 科技爱好者周刊(第 380 期):为什么人们拥抱"不对称收益" 科技爱好者周刊(第 379 期):《硅谷钢铁侠》摘录 我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验 科技爱好者周刊(第 378 期):预测是新的互联网热点 科技爱好者周刊(第 377 期):14万美元的贫困线 科技爱好者周刊(第 376 期):太空数据中心的争议 科技爱好者周刊(第 375 期):一扇门的 Bug 终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了 科技爱好者周刊(第 374 期):6GHz 的问题 VS Code 使用国产大模型 MiniMax M2 教程 科技爱好者周刊(第 373 期):数据模型是新产品的核心 国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例 科技爱好者周刊(第 372 期):软件界面如何设计 大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5 科技爱好者周刊(第 371 期):一个乐观主义者的专访 科技爱好者周刊(第 370 期):正确的代码高亮 错误处理:异常好于状态码 科技爱好者周刊(第 369 期):Tim 与罗永浩的对谈 科技爱好者周刊(第 368 期):不要这样管理软件团队 一天之内,智谱和 Anthropic 都发了最强编程模型 科技爱好者周刊(第 367 期):Nano Banana 的几个妙用 科技爱好者周刊(第 366 期):旧金山疯狂的 AI 广告 科技爱好者周刊(第 365 期):流量变现正在崩塌 科技爱好者周刊(第 364 期):最难还原的魔方 科技爱好者周刊(第 363 期):最好懂的神经网络解释 科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计 科技爱好者周刊(第 361 期):暗网 Tor 安全吗?
至简之 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 服务器。

六、参考链接

(终)