跳到主要内容

远程仓库

本章将介绍如何连接远程仓库,以及推送和拉取代码。

什么是远程仓库?

远程仓库是托管在网络上的项目版本库。常见的远程仓库服务包括:

  • 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 工作流

  1. 在 GitHub 上 Fork 仓库
  2. 克隆自己 Fork 的仓库
  3. 创建功能分支开发
  4. 推送到自己的 Fork
  5. 创建 Pull Request 到原仓库

常用命令速查表

命令说明
git remote -v查看远程仓库
git remote add origin url添加远程仓库
git clone url克隆仓库
git push推送到远程
git pull拉取远程代码
git fetch获取远程更新
git push origin --delete branch删除远程分支

小结

本章我们学习了:

  1. 远程仓库的概念
  2. 查看和添加远程仓库
  3. 克隆远程仓库
  4. 推送和拉取代码
  5. 同步远程分支
  6. 删除远程分支
  7. 处理合并冲突
  8. 多人协作工作流

练习

  1. 在 GitHub 上创建一个仓库
  2. 将本地仓库关联到远程
  3. 推送代码到远程
  4. 在另一台电脑克隆并继续开发
  5. 处理合并冲突