Git 团队协作总结 —— 不只是版本控制的工具

很久没有写文章了,最近开始学习团队开发,正好来总结一下 Git 在团队协作中的用法。

当你一个人使用 Git 时,Git 只是一个版本管理工具,帮你保存和回退代码。

但当你进入团队协作,Git 就变成了沟通与协作的重要桥梁,

它帮我们处理 代码同步、分支协作、合并、冲突,是团队开发必不可少的工具。

这篇文章不以堆砌命令为目的 ,重点是讲清楚在团队协作中,Git 的实际使用方式与流程

💡 推荐使用 VSCode + Git 插件,有可视化界面,操作更直观。
ℹ 关于主分支:有时叫 main ,有时叫 master,只是因为 Git 的默认分支名发生过调整,功能是一样的,遇到不同项目时注意区分即可。


Fork 仓库与远程仓库的概念

在团队协作中,通常会有一个远程仓库 ,大家通过这个仓库共享代码。

而每个人的电脑上都有一个本地仓库,用来开发和提交。

Fork 和 Clone 有什么区别?

操作 作用 场景
Clone 直接复制项目仓库到本地 团队内部协作,参与开发
Fork 在 GitHub 上复制出属于自己的远程仓库,再 Clone 到本地 开源项目、无权限时贡献代码

一句话总结:

➡ Clone 是项目"参与者"

➡ Fork 是项目"旁观者"


⬇️ 克隆 Fork 仓库到本地

1️⃣ 在你的 Fork 仓库页面,点击 Code 按钮,复制 HTTPS 或 SSH 地址。

2️⃣ 克隆到本地:

bash 复制代码
# 使用 SSH
git clone git@github.com:你的用户名/仓库名.git

# 或使用 HTTPS
git clone https://github.com/你的用户名/仓库名.git

# 进入项目目录
cd 仓库名

3️⃣ 设置上游仓库(即原始仓库):

bash 复制代码
# 查看当前远程仓库
git remote -v

# 添加上游仓库(upstream)
git remote add upstream https://github.com/原作者/仓库名.git

# 确认是否添加成功
git remote -v

获取上游仓库最新代码

保持同步,避免冲突是协作的基础。

bash 复制代码
# 拉取上游仓库最新更新
git fetch upstream

# 切换到主分支(根据项目实际情况是 main 或 master)
git switch main
# 或
git switch master

# 合并上游的主分支更新到本地主分支
git merge upstream/main
# 或
git merge upstream/master

# 推送到自己的 fork,保持同步
git push origin main

创建新分支进行开发

分支就像是从主干上长出来的一根枝条,

你可以在上面自由开发,完成后再合并回主分支,避免干扰。

分支类型 命名规范 用途
主分支 main / master 稳定版本,随时可以部署
功能分支 feature/xxx 开发新功能
修复分支 bugfix/xxx 或 hotfix/xxx 修复 bug
临时开发分支 dev 多人协作开发(可选)

分支相关命令

bash 复制代码
# 查看当前分支
git branch

# 查看所有分支(包括远程)
git branch -a

# 基于主分支创建新分支
git switch main
git pull
git checkout -b feature/你的功能描述

提交你的代码

提交不仅是保存代码,更是团队沟通的重要工具。

原则:

  • 小步提交,一件事一提交
  • 清晰的提交信息,推荐使用规范前缀(如 Conventional Commits)

常用前缀示例:

makefile 复制代码
feat: 添加新功能
fix: 修复问题
docs: 更新文档
refactor: 重构代码

提交命令示例:

bash 复制代码
# 查看修改状态
git status

# 查看修改内容
git diff

# 添加修改到暂存区
git add .

# 提交代码
git commit -m "feat: 添加用户登录功能"

# 推送到你的 Fork 仓库的功能分支
git push origin feature/你的功能描述

保持代码同步,避免冲突

在开发过程中,尤其是准备提 PR 之前,建议保持分支与上游仓库同步。

两种常用同步方式:

方式 是否产生合并记录 适用场景
git merge ✅ 有合并记录 日常开发中同步
git rebase ❌ 不产生合并记录,历史更清晰 提交 PR 前整理历史

示例命令:

bash 复制代码
# 获取上游更新
git fetch upstream
git switch main
git merge upstream/main
git push origin main

# 合并主分支到你的功能分支
git switch feature/你的功能描述
git merge main

简要示意(合并 vs 变基)

  • Merge 会产生合并记录:
bash 复制代码
A---B---C  ← upstream/main
     \
      D---E---F  ← feature 分支
           \
            M  ← 合并提交(Merge Commit)
  • Rebase 会整理历史,不产生合并提交:
bash 复制代码
A---B---C---D'---E'---F'  ← rebase 后的 feature 分支

处理合并冲突

如果在合并或变基过程中发生冲突,Git 会在文件中标记冲突部分:

bash 复制代码
<<<<<<< HEAD
你的修改
=======
上游的修改
>>>>>>> main

手动修改冲突后,继续提交即可:

bash 复制代码
git add 冲突文件
git commit -m "fix: 解决合并冲突"

创建 Pull Request(PR)

1️⃣ 确保功能分支的代码已提交并推送:

bash 复制代码
git push origin feature/你的功能描述

2️⃣ 在 GitHub 的 Fork 仓库页面,点击 "Compare & pull request",填写信息提交。


AI写的 PR 模板:

markdown 复制代码
## 修改内容
- 添加了用户登录功能
- 修复了密码验证的 bug
- 更新了相关文档

## 测试情况
- [ ] 单元测试通过
- [ ] 功能测试通过
- [ ] 代码审查完成

## 关联 Issue
Closes #123

OK,这就是所有内容啦! 如果你觉得这篇文章有帮助,或者有任何建议和指正,欢迎留言!

谢谢你的阅读!

相关推荐
大飞pkz4 小时前
【Git】git lfs自动跟踪大文件
git·lfs·git lfs·大文件传入github·lfs大文件自动跟踪
自学也学好编程5 小时前
Git分支管理与工作流详解
git
自学也学好编程7 小时前
Git基础概念与常用命令详解
git
吱吱02号机14 小时前
<Git>从零创建远程新仓库(最小操作)
git
测试开发技术1 天前
使用 Git 时出现 unable to access,如何解决?
git·面试题
zhougl9961 天前
git项目,有idea文件夹,怎么去掉
java·git·intellij-idea
tmacfrank2 天前
Git 使用技巧与原理(一)—— 基础操作
git
dilvx2 天前
git 配置 default editor
git
特种加菲猫2 天前
构建完整工具链:GCC/G++ + Makefile + Git 自动化开发流程
linux·笔记·git·自动化