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,这就是所有内容啦! 如果你觉得这篇文章有帮助,或者有任何建议和指正,欢迎留言!

谢谢你的阅读!

相关推荐
Data_Adventure13 小时前
能连上 GitHub(SSH 验证成功),却 push 失败?常见原因与逐步解决方案
前端·git·github
间彧13 小时前
如何解决Git客户端下载缓慢问题
git
Tearstornbyrain16 小时前
在Ubuntu24.04中使用ssh连接本地git仓库到github远程仓库
linux·git·ubuntu·ssh·github
四七伵20 小时前
一次 Git Rebase 事故,让我彻底明白 Rebase 和 Merge 的区别
git·后端
霖002 天前
FPGA的PS基础1
数据结构·人工智能·windows·git·算法·fpga开发
盗骊2 天前
Git rebase
git
芝麻馅汤圆儿2 天前
Git Bash
git
六件套是我2 天前
在idea中git切换分支,但是我的文件没add,没commit
git
Pi_Qiu_2 天前
Rsync自动化备份平台建设实战
git·自动化·github
parade岁月3 天前
Git黑科技:让你的配置文件"隐身",再也不用担心误提交!
git