远程仓库
本章将介绍如何连接远程仓库,以及推送和拉取代码。
什么是远程仓库?
远程仓库是托管在网络上的项目版本库。常见的远程仓库服务包括:
- GitHub
- GitLab
- Gitee(码云)
- Bitbucket
查看远程仓库
# 查看远程仓库
git remote
# 查看远程仓库详细信息
git remote -v
输出示例:
origin https://github.com/username/repository.git (fetch)
origin https://github.com/username/repository.git (push)
添加远程仓库
# 添加远程仓库
git remote add origin https://github.com/username/repository.git
# 添加另一个远程仓库
git remote add gitee https://gitee.com/username/repository.git
克隆远程仓库
# 克隆仓库
git clone https://github.com/username/repository.git
# 克隆到指定目录
git clone https://github.com/username/repository.git my-folder
# 克隆指定分支
git clone -b develop https://github.com/username/repository.git
# 浅克隆(只获取最近的历史)
git clone --depth 1 https://github.com/username/repository.git
推送代码
基本推送
# 推送到远程仓库
git push origin main
# 推送到当前分支
git push
# 第一次推送并设置上游分支
git push -u origin main
推送到特定分支
# 推送本地分支到远程
git push origin feature-login
# 推送并设置远程分支名
git push origin local-branch:remote-branch
强制推送
# 强制推送(覆盖远程)
git push -f origin main
# 警告:强制推送会覆盖远程代码,请谨慎使用!
拉取代码
基本拉取
# 拉取远程代码并合并
git pull
# 拉取指定分支
git pull origin main
获取代码
# 获取远程更新(不合并)
git fetch origin
# 获取所有分支
git fetch --all
pull 和 fetch 的区别
git fetch:获取远程更新,但不会合并git pull:获取远程更新并合并到当前分支
git pull = git fetch + git merge
同步远程分支
查看远程分支
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
追踪远程分支
# 检出远程分支并追踪
git checkout -b feature-login origin/feature-login
# 新版本 Git
git checkout --track origin/feature-login
更新远程分支列表
# 更新远程分支信息
git remote update origin --prune
# 或者
git fetch -p
删除远程分支
# 删除远程分支
git push origin --delete feature-login
# 旧语法
git push origin :feature-login
修改远程仓库
# 修改远程仓库 URL
git remote set-url origin https://github.com/username/new-repository.git
# 修改远程仓库名称
git remote rename origin upstream
处理远程冲突
当本地和远程有冲突时:
方法一:使用 pull
# 拉取远程代码(会产生合并提交)
git pull origin main
# 解决冲突后提交
git add .
git commit -m "解决合并冲突"
方法二:使用 rebase
# 使用 rebase 方式拉取
git pull --rebase origin main
# 解决冲突后继续 rebase
git add .
git rebase --continue
多人协作工作流
典型工作流
# 1. 克隆仓库
git clone https://github.com/username/project.git
# 2. 创建功能分支
git checkout -b feature-new-feature
# 3. 开发并提交
git add .
git commit -m "添加新功能"
# 4. 获取远程更新
git fetch origin
# 5. 变基到最新代码
git rebase origin/main
# 6. 推送到自己的分支
git push -u origin feature-new-feature
# 7. 在 GitHub 上创建 Pull Request
Fork 工作流
- 在 GitHub 上 Fork 仓库
- 克隆自己 Fork 的仓库
- 创建功能分支开发
- 推送到自己的 Fork
- 创建 Pull Request 到原仓库
常用命令速查表
| 命令 | 说明 |
|---|---|
git remote -v | 查看远程仓库 |
git remote add origin url | 添加远程仓库 |
git clone url | 克隆仓库 |
git push | 推送到远程 |
git pull | 拉取远程代码 |
git fetch | 获取远程更新 |
git push origin --delete branch | 删除远程分支 |
小结
本章我们学习了:
- 远程仓库的概念
- 查看和添加远程仓库
- 克隆远程仓库
- 推送和拉取代码
- 同步远程分支
- 删除远程分支
- 处理合并冲突
- 多人协作工作流
练习
- 在 GitHub 上创建一个仓库
- 将本地仓库关联到远程
- 推送代码到远程
- 在另一台电脑克隆并继续开发
- 处理合并冲突