第 4 课:远程仓库操作(多人协作必备)

前三课学习的都是本地 Git 操作。从这一课开始,我们正式进入团队开发场景。学完本课后,你将掌握 GitHub、Gitee、GitLab 等远程仓库的使用方式,并理解多人协作的基本流程。


4.1 什么是远程仓库?

前面学过:

工作区
    ↓
暂存区
    ↓
本地仓库

这些都在你的电脑上。

但团队开发时:

张三的电脑
李四的电脑
王五的电脑

代码需要共享。

于是就需要:

远程仓库(Remote Repository)

常见远程仓库平台

GitHub

全球最大的代码托管平台。

特点:

开源项目最多
全球开发者使用
面试必备

Gitee

国内代码托管平台。

特点:

访问速度快
适合国内项目

GitLab

企业级代码托管平台。

特点:

支持私有部署
很多公司内部使用

Git 工作流程升级

前三课:

工作区
    ↓
暂存区
    ↓
本地仓库

现在:

工作区
    ↓
暂存区
    ↓
本地仓库
    ↓
远程仓库

4.2 创建远程仓库

以 GitHub 为例。

登录 GitHub 后:

点击:

New Repository

创建仓库。

例如:

仓库名:
git-demo

⚠️ 新手注意:

不要勾选:

Initialize this repository with a README

否则本地推送时容易出现历史冲突。


创建完成后会得到:

https://github.com/用户名/git-demo.git

或者:

git@github.com:用户名/git-demo.git

4.3 查看远程仓库

查看当前仓库关联了哪些远程仓库:

git remote -v

刚初始化时:

(无输出)

说明还没有关联远程仓库。


4.4 关联远程仓库


HTTPS方式

最简单:

git remote add origin https://github.com/用户名/git-demo.git

查看:

git remote -v

输出:

origin  https://github.com/用户名/git-demo.git (fetch)

origin  https://github.com/用户名/git-demo.git (push)

说明关联成功。


origin 是什么?

其实就是别名。

例如:

git remote add origin 仓库地址

相当于:

origin
=
远程仓库地址

以后:

git push origin main

实际上就是:

git push 远程仓库地址 main

4.5 第一次推送代码

假设本地已经提交过代码:

git log --oneline

输出:

a1b2c3d 初始化项目

推送:

git push -u origin main

首次推送参数解释:

-u

表示:

建立本地分支和远程分支关联

执行成功:

Branch 'main' set up to track remote branch 'main'

以后直接:

git push

即可。


4.6 推送流程图

工作区
   ↓
git add
   ↓
暂存区
   ↓
git commit
   ↓
本地仓库
   ↓
git push
   ↓
远程仓库

必须牢记。


4.7 克隆远程仓库

如果项目已经存在:

例如:

https://github.com/user/blog.git

下载到本地:

git clone https://github.com/user/blog.git

Git 自动完成:

创建目录

初始化仓库

关联远程仓库

下载代码

得到:

blog
├── src
├── pom.xml
├── README.md
└── .git

4.8 克隆到指定目录

默认目录:

仓库名

例如:

git clone https://github.com/user/blog.git

生成:

blog

指定目录:

git clone https://github.com/user/blog.git my-project

生成:

my-project

4.9 拉取远程代码

团队开发最常见操作。


别人已经提交:

登录功能

你需要同步。

执行:

git pull origin main

流程:

远程仓库
    ↓
本地仓库
    ↓
工作区

4.10 pull 到底做了什么?

其实:

git pull

等于:

git fetch

git merge

即:

第一步:

git fetch origin

下载代码。


第二步:

git merge origin/main

合并代码。


所以:

git pull

只是一个快捷命令。


4.11 查看远程分支

查看远程仓库所有分支:

git branch -r

输出:

origin/main

origin/dev

origin/test

查看全部分支:

git branch -a

输出:

main

dev

remotes/origin/main

remotes/origin/dev

4.12 修改远程仓库地址

例如:

仓库迁移。

查看:

git remote -v

修改:

git remote set-url origin 新地址

例如:

git remote set-url origin git@github.com:user/blog.git

再次查看:

git remote -v

确认修改成功。


4.13 删除远程仓库关联

如果关联错了:

git remote remove origin

查看:

git remote -v

无输出说明删除成功。


4.14 实际开发标准流程

每天上班第一件事:

git pull

同步最新代码。


开始开发:

写代码

提交:

git add .

git commit -m "完成用户登录功能"

上传:

git push

流程:

早上
↓
git pull

开发
↓
git add

git commit

git push

4.15 为什么 push 会失败?

常见错误:

rejected

或者:

failed to push some refs

原因:

远程仓库比你更新

例如:

张三先提交
李四后提交

解决:

git pull

git push

记住:

先拉取
再推送

4.16 GitHub 与 SSH 推送

如果已经配置 SSH:

推送地址:

git@github.com:user/blog.git

查看:

git remote -v

输出:

origin git@github.com:user/blog.git

以后:

git push

无需输入密码。


本课总结

掌握以下命令:


关联远程仓库

git remote add origin 仓库地址

查看远程仓库

git remote -v

首次推送

git push -u origin main

普通推送

git push

克隆仓库

git clone 仓库地址

拉取代码

git pull origin main

查看远程分支

git branch -r

删除远程仓库

git remote remove origin

必须牢记的团队协作流程:

上班
 ↓
git pull

开发
 ↓
git add .

git commit -m "说明"

git push

至此,你已经具备了多人协作开发的基础能力。

下一课《第 5 课:分支管理(Git 的灵魂)》将学习:

  • 分支到底是什么
  • git branch
  • git switch
  • git checkout
  • git merge
  • Fast Forward
  • 三路合并
  • 冲突产生原理
  • 企业级分支管理思想

学完这一课,你会真正理解为什么 Git 能支撑大型团队开发。