本地 Git 远程仓库
摘要
关于如何使用裸仓库为个人项目设置本地 Git 远程仓库的教程,支持离线友好的推/拉工作流。
暂无内容
查看缓存全文
缓存时间: 2026/05/29 16:19
# 本地 Git 远程仓库 — Alexander Cobleigh
来源:https://cblgh.org/posts/local-git-remotes/
在开发 [cani](https://cblgh.org/cani) 的过程中,我同时使用了多种 Git 远程仓库。其中一个远程仓库托管在我家里的服务器上。以下是我的设置方法。
假设服务器上有一个名为 `cani` 的项目文件夹。该文件夹包含代码和一个 `.git/` 目录:
```
/home/user/projects/cani
```
我们可以利用上述文件夹来克隆一个**裸仓库**(可作为远程仓库使用,且不会引发奇怪的冲突):
```
cd /home/user/bares
git clone --bare /home/user/projects/cani
# 创建了 /home/user/bares/cani.git
```
将这个裸仓库添加为远程仓库以便进行推送和拉取,可以有几种不同的方式。以下是在同一台机器上设置远程仓库的方法:
```
git remote add local /home/user/bares/cani.git
```
以下是在另一台机器上推送时设置远程仓库的方法:
```
git remote add local ssh://USER@MACHINE:/home/user/bares/cani.git
```
我们可以将分支 `main` 关联为远程仓库 `local` 的默认分支:
```
git remote set-branches local main
```
现在,我们可以向 `local` 远程仓库推送了!
```
# 无任何配置
git push ssh://USER@MACHINE:/home/user/bares/cani.git
# 如果已按上述方式配置了 ssh://USER@ 的远程仓库
git push local
```
从已配置的远程仓库拉取:
```
# 无默认分支
git pull local main
# 已设置默认分支 `main`
git pull local
```
值得一提的是,`ssh://USER@MACHINE` 语法可以替换为你本地已配置的任何 SSH 设置。
总之,我非常喜欢使用本地远程仓库,尤其是在处理在线率较低的异地远程仓库时。设置本地远程仓库后,使用一个可能并不总是可用的远程仓库变得轻松了许多。就我个人而言,那个异地远程仓库是一个小型社区服务器,正遭受大企业爬虫的猛烈攻击。现在,我两者兼得:一个可以无延迟推送的本地远程仓库,以及一个由在线社区的朋友托管的异地副本。值得注意的是,这里没有大科技公司的参与!
相似文章
@github: 在电脑上开始工作,随处继续本地会话。GitHub Copilot CLI 和 @code 会话的远程控制现已可用。
GitHub 已全面推出 GitHub Copilot CLI 和 VS Code 会话的远程控制功能,让用户在一台设备上开始工作后,可从另一台设备无缝继续。
我构建了一个专为代码仓库定制的Karpathy's LLM Wiki版本
一位开发者构建了一个针对代码仓库适配的Karpathy's LLM Wiki版本,允许用户存储和检索本地代码中的见解,并自动检测变化。
使用钩子的极简Git CI
一篇博客文章,描述了使用Git钩子和轻量级任务队列nq,为个人Git仓库搭建的最小化CI系统。
一个完全本地、自托管的代码仓库索引,适用于编码智能体(Rust,MIT 协议,离线运行)
Basemind 是一个开源工具,可在本地索引仓库,并通过 MCP 协议向编码智能体提供上下文,包括代码地图、Git 历史记录和文档 RAG,无需依赖云端。
@github: 有新项目想法但把笔记本电脑落在家里了?直接用手机创建仓库。命名、设置可见性,并调整…
GitHub Mobile 现在允许用户直接在手机上创建仓库,可设置名称、可见性、描述、模板和初始文件。