Git详解 三( 多人协同开发 ,代码冲突)

时间:2024-03-30 08:26:08

多人协同开发

1.代码编辑界面介绍:此处使用gedit做演示

  • 代码编辑界面左边为模拟经理的操作
  • 代码编辑界面右边为模拟张三的操作
    Git详解 三( 多人协同开发 ,代码冲突)

2.模拟张三先编辑login.py文件代码

  • 进入张三本地仓库:cd Desktop/zhangsan/test007
  • 编辑代码:num1 = 10
  • 本地仓库记录版本:git commit -am ‘第一个变量’
  • 推送到远程仓库:git push
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)

3.模拟经理后编辑login.py文件代码

  • 进入经理本地仓库:cd Desktop/manager/test007/
  • 经理同步服务器代码:git pull
  • 编辑代码:num2 = 20
  • 本地仓库记录版本:git commit -am ‘第二个变量’
  • 推送到远程仓库:git push
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)

4.模拟张三同步服务器代码

  • 本次可以把num2同步到张三的本地仓库
    Git详解 三( 多人协同开发 ,代码冲突)
    5.按照以上2-3-4步骤循环操作,即可实现基本的协同开发
    6.总结:
  • 要使用git命令操作仓库,需要进入到仓库内部
  • 要同步服务器代码就执行:git pull
  • 本地仓库记录版本就执行:git commit -am ‘版本描述’
  • 推送代码到服务器就执行:git push
  • 编辑代码前要先pull,编辑完再commit,最后推送是push

代码冲突

  • 提示:多人协同开发时,避免不了会出现代码冲突的情况
  • 原因:多人同时修改了同一个文件
  • 危害:会影响正常的开发进度
  • 注意:一旦出现代码冲突,必须先解决再做后续开发

代码冲突演练

1.张三先编辑login.py文件代码

  • 进入张三本地仓库:cd Desktop/zhangsan/test007
  • 拉取服务器最新代码:git pull
  • 编辑代码:num3 = 30
  • 本地仓库记录版本:git commit -am ‘第三个变量’
  • 推送到服务器仓库:git push
  • 张三本地仓库和远程仓库代码如下:
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)
    2.经理后编辑login.py文件代码
  • 进入经理本地仓库:cd Desktop/manager/test007/
  • 编辑代码:num3 = 300
  • 本地仓库记录版本:git commit -am ‘第三个变量’
  • 推送到服务器仓库:git push
  • 以上操作会出现代码冲突
    提示需要先pull
    Git详解 三( 多人协同开发 ,代码冲突)
    提示冲突文件
    Git详解 三( 多人协同开发 ,代码冲突)
    冲突代码表现
    Git详解 三( 多人协同开发 ,代码冲突)
    3.解决冲突
  • 原则:谁冲突谁解决,并且一定要协商解决
  • 方案:保留所有代码 或者 保留某一人代码
  • 解决完冲突代码后,依然需要add、commit、push
    Git详解 三( 多人协同开发 ,代码冲突)
    Git详解 三( 多人协同开发 ,代码冲突)
    提示:如果张三执行pull没有影响,就算真正解决了冲突代码
    补充:
    容易冲突的操作方式
  • 多个人同时操作了同一个文件
  • 一个人一直写不提交
  • 修改之前不更新最新代码
  • 提交之前不更新最新代码
  • 擅自修改同事代码
    减少冲突的操作方式
  • 养成良好的操作习惯,先pull在修改,修改完立即commit和push
  • 一定要确保自己正在修改的文件是最新版本的
  • 各自开发各自的模块
  • 如果要修改公共文件,一定要先确认有没有人正在修改
  • 下班前一定要提交代码,上班第一件事拉取最新代码
  • 一定不要擅自修改同事的代码