🐸 青蛙编程网
首页 / 开发工具 / Git / 6. 远程仓库

6. 远程仓库

这是什么:远程仓库(remote) = 云端的历史副本,住在 Gitee、GitHub 或自建 GitLab 上,团队同步、个人备份、部署触发全靠它。

为什么用:上一章的提交都只存在你这台电脑里,硬盘一坏就全没了,别人也没法拿到你的代码。挂上远程仓库,代码才算真正安了家、上了云。

如何用:本章从 clone 和 remote add 两种起点讲起,再练 pull / push / fetch 三件套,顺带把 HTTPS 换成 SSH 免密地址。

6.1 两种起点

# A:云端已有 → 拿到本地
git clone https://gitee.com/xxx/xxx.git

# B:本地已有 → 挂上云端
git remote add origin https://gitee.com/xxx/my-project.git
git push -u origin main      # 首推建立跟踪关系

-u 的意思:记住绑定关系,以后我 push/pull 不用再写 origin main。

查看与改名:

git remote -v            # 远程列表
git remote set-url origin <新地址>   # 换地址( исправлено密码冲突时常用)

6.2 同步三杀手:pull / push / fetch

git pull                # 云端变化 → 本地(fetch + merge)
git push                # 本地提交 → 云端
git fetch               # 仅「下载」变化,先看看不合并(审慎模式)

协作铁律:push 前先 pull(本博客 deploy.md 规矩也这么写)——直接 push 会被远程拒绝,还得回头处理。

6.3 凭据与 SSH 地址

HTTPS 方式每次拉/推可能要密码,改用 SSH 免密(与 Linux 教程同一套密钥):

git remote set-url origin git@gitee.com:xxx/my-project.git

前提:在服务平台(Gitee/GitHub)的 SSH Keys 里贴上你的公钥。

Gitee、GitHub 打不开?网络问题概率最大,换 SSH 地址即可解决。

6.4 冲突:push 被拒绝时的处理

! [rejected] main -> main (fetch first)

说明云端有你没有的提交:

git pull                 # 有冲突 → 第 5 章四步法
# 无冲突 → Git 自动 merge 后
git push

严禁 git push --force——别人提交会被抹掉(本博客 AI 禁区第一条明确禁止)。

6.5 动手改

  1. 在 Gitee 建一个空仓库(不要初始化 README),按 B 方案挂接自己项目并首推
  2. 在 GitHub 网页上编辑一个文件,本地 git pull 拉回
  3. 故意「本地落后一步 push」体验 rejected,再 pull + push 修复

6.6 小结

  • 远程 = 云端副本;remote add 挂接、push -u 定亲
  • push 前先 pull;rejected 别 force,拉下来解决
  • 用 SSH 地址免交接,服务与本地公钥成对

下一章:团队协作 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。