文章目录
- 场景一
- 场景二
- 解决一些后续问题
场景一
Git是一个多人协作下完成的操作,因此Git是需要进行一些多人协作的场景的,那么这里就使用Linux和Windows两个平台进行模拟实现两个用户进行的协作
首先把仓库克隆到本地,再加入两个用户的信息,因为要进行多人协作一定是有两个Gitee的账号的
在Linux下完成基本操作:

此时,在Gitee中也同步进行了更新:

那现在切换到Windows下的用户,Windows下用户也想进行这个项目的开发,那么首先要先创建分支拉取仓库中的数据

此时Windows用户下的仓库中就有了Linux用户下更新的内容和信息,修改信息后进行add和commit的操作,此时Gitee上就有了新的提交记录

那么假设此时Linux用户还在进行开发,又进行了一些修改,那么会不会因为Windows用户的提交而导致Linux用户的提交直接被覆盖?
下面用实验进行模拟

解决方法就是利用pull将信息拉取到本地仓库,不同的信息会以冲突的报错进行提示,手动修改后提交即可解决问题,解决后再提交到Gitee即可,而Windows用户下次使用的时候,也需要进行一次pull拉取数据,否则依旧在push的时候会报错,也需要解决访问冲突的问题


那么下面解决怎么把分支进行合并的问题
首先肯定是要进行一次pull操作,将远端仓库中的master拉取到本地中,再在本地中将master分支合并到dev分支,解决掉冲突后再合并到master分支,再push到仓库中
总结一下
当实际在开发时,如果一个分支有两个人在使用时,完成自己的代码后,首先可以尝试一下git push进行推送自己的修改,如果推送失败,就说明远程仓库进行了一定的更新,那么就首先需要进行git pull进行拉取远程仓库进行合并
如果合并有冲突,就进行解决这个冲突,之后进行提交即可
功能开发完毕后,将分支merge到master中,最后删除分支即可
场景二
一般情况下,如果有需求需要多人同时进行开发,是不会在一个分支上进行开发的,而是一个需求点就创建一个分支,也就是说场景一的情况一般不会出现
那么下面就模拟场景二这个场景:
- 两个人走两条分支
- 第一个分支创建
feature1文件 - 第二个分支创建
feature2文件 - 提交到
Gitee
那么首先到Linux环境下进行操作:

可以使用命令直接将本地分支提交到远端分支:
git push origin feature1
此时Gitee中有feature1的分支信息了

此时再切换回Windows用户进行使用:

此时Gitee中也有Windows的更新信息了

那么现在就有三个分支,如何对其他两个分支合并到master分支就是下一步要进行的步骤

如果Windows用户需要Linux用户帮忙开发,可以吗?
答案是可以的,需要设计到切换路径的问题

此时结束后,如果Windows用户想要继续开发,只需要把信息拉取回来再继续开发即可

提示未建立链接,只需要重新建立链接即可

改完信息后上传到Gitee上即可,此时Gitee中关于feature2的分支中就既有Linux开发也有Windows下的开发

合并代码这里采用的是PR申请的写法,整体比较简单,提交申请由审核人员进行审核即可
解决一些后续问题
删除远程分支后但是还能看到远程分支怎么办?
[test@VM-16-11-centos test_git]$ git branch -a
feature1
* feature2
master
remotes/origin/HEAD -> origin/master
remotes/origin/dev
remotes/origin/feature1
remotes/origin/feature2
remotes/origin/master
此时可以选择使用一个命令
git remote show origin
用以展现远程分支和本地分支之间对应的关系
[test@VM-16-11-centos test_git]$ git remote show origin
* remote origin
Fetch URL: https://gitee.com/zhaobohan/test_git.git
Push URL: https://gitee.com/zhaobohan/test_git.git
HEAD branch: master
Remote branches:
feature1 tracked
feature2 tracked
master tracked
refs/remotes/origin/dev stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
feature2 merges with remote feature2
master merges with remote master
Local refs configured for 'git push':
feature1 pushes to feature1 (up to date)
feature2 pushes to feature2 (local out of date)
master pushes to master (up to date)
再根据推荐直接删除即可
[test@VM-16-11-centos test_git]$ git remote prune origin
Pruning origin
URL: https://gitee.com/zhaobohan/test_git.git
* [pruned] origin/dev
这样就完成了两个多人协作的场景模拟,下一篇进行一个项目的模拟开发流程



















