远程仓库Remote Repository

你可能会说

我的提交只在自己电脑上,怎么让别人也能看到?

存放在别处(通常是云端)的同一份仓库副本,用来同步改动和协作在本地电脑上完成的代码提交,只有推送到托管在云端(如 GitHub)的远程仓库后,协作者才能拉取查看,自动化部署流程也才能据此更新网页。origin 是默认远程仓库的约定别名;克隆 Clone推送 Push拉取 Pull 等常见 Git 命令,本质上都是在本地仓库与远程仓库之间同步历史记录。
先知道
也常被叫作远程Remoteorigin
本地仓库my-first-page
push 推送 ↑pull 拉取 ↓
origingithub.com/you/my-first-page
git push origin main

远程仓库是同一份仓库的另一份副本。你推送本地的提交,别人拉取后就能看到;对方推送的新改动,你再拉取回来。

什么时候用

  • 用 git remote -v 查看当前仓库关联了哪个远程地址
    $ git remote -vorigin  https://github.com/you/my-first-page.git (fetch)
  • 克隆或初始化时把远程仓库命名为 origin,后续命令直接用它
    $ git remote add origin https://github.com/you/my-first-page.git克隆时通常已自动配好 origin
  • 推送前先拉取远程最新改动,避免被拒绝
    git pullgit push推送成功 ✓
  • 协作者 clone 同一个远程地址,就能拿到同一份完整历史
    $ git clone https://github.com/you/my-first-page.gitCloning into 'my-first-page'...

什么时候不用

  • 把密钥、密码或 .env 提交并推送到远程仓库
    .env 里写着密钥,推送后任何人都能拉到
  • 推送被拒绝时直接强推覆盖远程历史
    git push --force 抹掉了同事刚推送的 3 个提交被拒绝时应先拉取合并,而不是强推
  • 在错误的远程地址上推送,改动进入别人的仓库
    推送到了别人的仓库地址推送前用 git remote -v 确认地址
  • 以为推送即上线:远程仓库不等于网站已经部署
    git push ✓网站没更新
组成结构 · Anatomy
https://github.com/you/my-first-page.git
指向云端那份仓库;origin 只是它的名字,换名字不影响内容
常见变体 · Variants
查看远程remote -v
git remote -v
确认本地仓库关联了哪些远程地址
新增远程remote add
git remote add origin https://…
本地仓库还没有关联远程地址时
推送push
git push origin main
把本地提交送到远程仓库
拉取pull
git pull origin main
把远程的新改动取回本地并合并
典型使用场景
终端 git remote -v 查看地址
zsh — my-first-page
$ git remote -v origin  https://github.com/you/my-first-page.git (fetch) origin  https://github.com/you/my-first-page.git (push)
GitHub 仓库页面
you / my-first-page
github.com/you/my-first-page Public
网页上的仓库和本地是同一份历史的两份副本
push 被拒绝的提示
zsh — my-first-page
$ git push origin main To github.com:you/my-first-page.git ! [rejected] main -> main (fetch first) 远程有你没有的提交:先 git pull 合并,再推送
clone 时指定的远程地址
zsh — my-first-page
$ git clone https://github.com/you/my-first-page.git Cloning into 'my-first-page'... 这个地址就是远程仓库;克隆后本地自动关联 origin
延伸阅读 · 权威出处