第 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 能支撑大型团队开发。