多人协同开发
- 模拟张三先编辑
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
在修改,修改完立即commit
和push
- 一定要确保自己正在修改的文件是最新版本的
- 各自开发各自的模块
- 如果要修改公共文件,一定要先确认有没有人正在修改
- 下班前一定要提交代码,上班第一件事拉取最新代码
- 一定不要擅自修改同事的代码
- 养成良好的操作习惯,先