首页 / Git 入门教程 / 远程仓库基础

Git 入门教程

远程仓库基础

本教程共 26 篇 · 第 12 篇 · 更新于 2026-07-29 · 约 7 分钟阅读

GitGit 入门教程远程仓库git remotegit pushgit fetchgit pull

12. 远程仓库基础

本节目标:学会添加远程仓库、推送本地提交、抓取远程更新,并搞清楚 fetch 和 pull 到底差在哪。

Git 是分布式的。你的仓库可以克隆到另一台机器上继续工作。这个”另一台机器”就是远程仓库。

远程仓库是什么

远程仓库就是托管在网络上的版本库。可以是你公司内网的 GitLab、公网的 GitHub、甚至隔壁同事电脑上的一个共享文件夹。

名字听起来很远,但操作起来就像本地命令加个”地址”一样自然。

查看远程仓库

git remote
origin

-v 能看到更多细节:

git remote -v
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

origin 是 Git 给远程仓库起的默认名字,和 main 作为默认分支名一样,没有魔法。

添加远程仓库

手动关联一个远程仓库:

git remote add origin https://github.com/user/repo.git

克隆仓库时 Git 已经帮你做了这步。

也可以挂多个远程仓库:

git remote add upstream https://github.com/origin/repo.git

想重命名:

git remote rename origin old-origin

想删除:

git remote remove old-origin

推送本地提交

把本地分支送到远程:

git push origin main

如果本地分支名不一样,可以用 本地名:远程名 的格式:

git push origin feature:awesome-feature
Warning

推送被拒绝?通常因为远程有你没有的提交。先 git pull 把远程最新变更拉下来、解决冲突,再 push。

抓取远程更新

git fetch 只做一件事:把远程最新数据下载到本地,但不改你的工作目录。

git fetch origin

安全、无副作用。你可以先看看远程有了什么再决定怎么合并。

拉取 = 抓取 + 合并

git pullfetch + merge 的快捷方式:

git pull origin main

等于:

git fetch origin
git merge origin/main

fetch vs pull:到底用哪个

维度fetchpull
动作只下载下载 + 合并
风险可能触发冲突
适用场景想先看看远程有啥变化确定直接同步

很多老手更爱用 fetch,然后手动决定是 merge 还是 rebase。这样能避免”不明不白的历史合并”。

用 pull —rebase 保持线性

git pull --rebase origin main

等于 fetch + rebase,本地提交会被挪到远程最新提交之后,提交历史更干净。

想把它设为默认:

git config --global pull.rebase true

删除远程分支

远程分支不是你本地的,要用 push 的特殊语法删除:

git push origin --delete feature

或旧语法:

git push origin :feature

本质是”推一个空值过去”,把远程的指针删掉。

查看远程仓库详情

git remote show origin

输出包括:远程 URL、HEAD 分支、哪些远程分支被跟踪、push/pull 的对应关系。信息非常全面,排查问题首选。

* remote origin
  Fetch URL: https://github.com/user/repo.git
  Push  URL: https://github.com/user/repo.git
  HEAD branch: main
  Remote branches:
    main      tracked
    feature   tracked
  Local branch configured for 'git pull':
    main merges with remote main
  Local ref configured for 'git push':
    main pushes to main (up to date)

换个角度看 fetch

git fetch 之后,远程分支在本地以 远程名/分支名 的形式存在,比如 origin/main

这是一个”远程跟踪分支”,你不能在上面直接工作,但可以查看、合并它。

git fetch origin
git log origin/main          # 看远程 main 的历史
git merge origin/main       # 手动合并

协议那点事

远程仓库地址支持两种协议:

  • HTTPShttps://github.com/...,每次 push 可能要输用户名和密码。
  • SSHgit@github.com:...,配好密钥后免密推送。

新手先用 HTTPS 熟悉流程,再换 SSH 提升体验。下一章 GitHub 章节会讲怎么配 SSH。

本章小卡片

命令作用
git remote -v查看远程仓库及 URL
git remote add <名> <url>添加远程仓库
git push <远程> <分支>推送本地分支
git fetch <远程>下载远程最新数据
git pull <远程> <分支>抓取 + 合并
git pull --rebase <远程> <分支>抓取 + 变基
git remote show <远程>查看远程详情
git push <远程> --delete <分支>删除远程分支
Note

每天开工前先 git fetch,心里有数今天有没有同事推了东西。push 前先 fetch,被拒绝的概率会低很多。