单人开发时,Git 的本地分支管理已能满足版本控制需求,但进入团队协作后,核心痛点变成了如何有序同步代码、避免冲突、高效协作。Git 的分布式特性让多人开发灵活高效,但缺乏规范流程会导致代码混乱、冲突频发。本文结合多人协作的两大核心场景(同一分支协同、多分支并行开发),拆解从分支创建、代码同步到冲突解决的完整流程,附具体命令和实操案例,帮助掌握企业级 Git 协作规范。
一、多人协作模式一:同一分支协同开发(简单场景)
适用于小团队、短期迭代,多人基于同一 dev 分支或同一 feature 分支开发(需高频同步,减少冲突)。
核心流程:拉取→开发→提交→推送闭环,注意拉取这一步不要少。
目前,我们已完成 Git 的所有本地库的相关操作,包括基本操作、分支理解、版本回退、冲突解决等。申请码云账号,将远端信息 clone 到本地,以及推送和拉取。
为了模拟多人协作,我们在 Windows 环境下再 clone 同一个项目仓库:
[Lotso@VM-4-4-centos git_studying]$ pwd
/home/Lotso/git_studying
实际开发中,每个用户都有自己的 Gitee/GitHub 账号,如果要多人进行协同开发,必须将用户添加进开发者,用户才有权限进行代码提交。
到此,我们就相当于有了两个用户,分别在 Linux 和 Windows 上针对同项目进行协作开发。目前,我们的仓库中只有一个 master 主分支,但在实际的项目开发中,在任何情况下其实都是不允许直接在 master 分支上修改代码的,这里为了保证主分支的稳定。所以在开发新功能时,常常会新建其他分支,供开发时进行迭代使用。
接下来,在远程仓库上新建 dev 远程分支供我们使用:
创建成功的远程分支是可以通过 Git 拉取到本地来,以实现完成本地开发工作。接下来让我们和另一名开发的小伙伴都将远程仓库进行一次拉取操作,并观察结果。
对于我们要操作的是:
# 先 pull 一下拉取最新的远端仓库
$ git pull
From gitee.com:huang-qiruiqq/git_studying
* [new branch] dev -> origin/dev
Already up-to-date.
# 之前讲的 git branch 只能看到本地分支
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/master
# 创建并切换分支
$ git checkout -b dev origin/dev
Branch dev set up to track remote branch dev from origin.
Switched to a new branch 'dev'
拉取后便可以看到远程的 dev 分支,接着切换到 dev 分支供我们进行本地开发。要说明的是,我们切换到的是本地的 dev 分支,根据示例中的操作,会将本地分支和远程分支进行关系链接。
现在,你和小伙伴就可以在 dev 上完成开发。首先,让我们在 dev 分支上进行一次开发,并 push 到远程,例如:
$ vim file.txt
$ cat file.txt
hello git complete the first function!
$ git add file.txt
$ git commit -m "first function"
[dev 1658f31] first function
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push
warning: push.default is unset; its implicit value is changing Git 2.0 from to . To squelch this message and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See and search further information. (the mode was introduced Git 1.7.11. Use the similar mode instead of you sometimes use older versions of Git)
Counting objects: 5, .
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), .
Writing objects: 100% (3/3), 289 bytes | 0 bytes/s, .
Total 3(delta 1), reused 0(delta 0)
To [email protected]:huang-qiruiqq/git_studying.git
97a0741..1658f31 dev -> dev


