到目前为止,我们学习的 Git 操作基本都发生在自己的电脑上。无论是 git add、git commit,还是创建 Branch 和 Merge,默认处理的都是 本地仓库(Local Repository)。
但在实际开发中,代码通常不会只保存在某一台电脑上。团队成员需要共享代码,个人项目也通常希望有一份在线备份。这时就需要用到 远程仓库(Remote Repository)。
远程仓库可以简单理解成:
一个放在网络服务器上的 Git Repository。
在本教程中,我们使用 GitHub 来保存远程仓库。
可以把本地仓库和 GitHub 的关系理解成:
本地仓库是你真正写代码和创建 Commit 的地方,而 GitHub Repository 则是存放在线版本的地方。
本地仓库和远程仓库不是同一个东西
这是一个非常重要的概念。
当你执行:
git commit -m "Add login page"这个 Commit 默认只存在于你的电脑上。
此时 GitHub 并不会自动知道你刚刚提交了什么。
只有执行:
git push之后,本地 Commit 才会被上传到 GitHub。
也就是说:
修改代码 → git add → git commit → 本地已经保存 → git push → 上传到 GitHub
这也是为什么有时候你明明已经 Commit 了代码,但打开 GitHub 后却看不到最新修改。通常原因就是还没有 Push。
知识测验
GitHub 的作用
对于基础 Git 使用来说,可以先把 GitHub 看成一个在线 Git Repository 平台。它可以帮助我们保存代码、共享代码,也可以让多人围绕同一个项目进行协作。
例如,一个团队可能有一个 GitHub Repository:
company-web-app每个开发者都可以把这个 Repository Clone 到自己的电脑,在本地创建 Branch、修改代码和 Commit,然后再把自己的 Branch Push 到 GitHub。
除了保存代码以外,GitHub 还提供 Pull Request、Issues、Code Review 和 CI/CD 等功能。后面的协作内容会介绍这些功能。
什么是 origin?
当我们使用 git clone 从 GitHub Clone 一个 Repository 时,Git 通常会自动把这个远程仓库命名为:
origin例如:
git clone https://github.com/example/demo-project.gitClone 完成以后,Git 会自动记住这个 GitHub Repository,并给它一个默认名称:
origin因此,以后你可能会看到:
git push origin main这里的:
origin并不是 GitHub 的特殊功能,而只是这个远程仓库在本地 Git 中的名字。
理论上,远程仓库可以取其他名字,但 origin 是最常见的默认名称。
练习
你的同学说:“我已经 Commit 了,所以团队一定能在 GitHub 看到。”请指出这句话的问题,并用本地仓库、远程仓库、Push 三个概念重新解释。