Git 多人开发及常见问题

多人协同开发

  • 模拟张三先编辑login.py文件代码
    • 进入张三本地仓库:cd Desktop/zhangsan/test007
    • 编辑代码:num1 = 10
    • 本地仓库记录版本:git commit -am '第一个变量'
    • 推送到远程仓库:git push
  • 模拟经理后编辑login.py文件代码
    • 进入经理本地仓库:cd Desktop/manager/test007/
    • 经理同步服务器代码:git pull
    • 编辑代码:num2 = 20
    • 本地仓库记录版本:git commit -am '第二个变量'
    • 推送到远程仓库:git push
  • 模拟张三同步服务器代码
    • 本次可以把num2同步到张三的本地仓库
  • 按照以上步骤循环操作,即可实现基本的协同开发
  • 总结:
    • 要使用git命令操作仓库,需要进入到仓库内部
    • 要同步服务器代码就执行:git pull
    • 本地仓库记录版本就执行:git commit -am '版本描述'
    • 推送代码到服务器就执行:git push
    • 编辑代码前要先pull,编辑完再commit,最后推送是push

代码冲突思考

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

关于这代码冲突之一块,自己做了一个大胆的猜想实践

可能过程跟问题是有点傻里傻气的,我认为学习就是这样:
大胆的提出问题,
去大胆的猜想,
最后再实践,得出相应的结论.

不成熟的想法一:

如果经理跟张三同时上传了一个文件,且内容也一致,

经理上传无问题,那么张三上传还会冲突吗?

还是说会发生别的问题?

猜想1:

​ 会产生冲突,由于操作同一个文件,

猜想2:

​ 不会冲突,文件内容会覆盖

实践结论:

​ 经过实践得知会产生冲突,

​ 多人同时对一个文件修改,

​ 无论修改内容是否一致,都会产生冲突

不成熟的想法二:

如果经理跟张三写两个不同文件,但内容一致,还会冲突吗?

或者说会不会产生别的问题?

猜想1:

​ 由于操作本身不是同一个文件,所以不会冲突,

猜想2:

​ 会产生冲突,(为什么会冲突?原理是在实践后得到)

实验结论:

​ 产生了一个版本冲突,

​ 即使同时提交,也会有

​ 一个率先提交完数据,

​ 所致后者提交编辑的不是new的pull,

​ 会抛出一个问题让自己先手动git pull,

​ 再进行提交数据 git push

最后总结:

  • 容易冲突的操作方式
    • 多个人同时操作了同一个文件
    • 一个人一直写不提交
    • 修改之前不更新最新代码
    • 提交之前不更新最新代码
    • 擅自修改同事代码
  • 减少冲突的操作方式
    • 养成良好的操作习惯,先pull在修改,修改完立即commitpush
    • 一定要确保自己正在修改的文件是最新版本的
    • 各自开发各自的模块
    • 如果要修改公共文件,一定要先确认有没有人正在修改
    • 下班前一定要提交代码,上班第一件事拉取最新代码
    • 一定不要擅自修改同事的代码
原文地址:https://www.cnblogs.com/chao460/p/14145746.html