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 动手改
- 在 Gitee 建一个空仓库(不要初始化 README),按 B 方案挂接自己项目并首推
- 在 GitHub 网页上编辑一个文件,本地
git pull拉回 - 故意「本地落后一步 push」体验 rejected,再 pull + push 修复
6.6 小结
- 远程 = 云端副本;
remote add挂接、push -u定亲 - push 前先 pull;rejected 别 force,拉下来解决
- 用 SSH 地址免交接,服务与本地公钥成对
下一章:团队协作 🐸