github协同开发

协同开发

github协同开发(多人共同开发)大致有两种方式:

  1. 合作者
  2. 组织

合作者


组织

创建一个组织,组织内的成员可以一起开发多个项目。

怎么协同开发

有两点:

  1. 所有人不能在dev分支进行开发(如果两人都在同一分支开发,在公司都提交,A晚上回家拉代码下来想测试自己的一部分代码,发现测不了,因为dev还有B的未完成的可能有bug的代码)
  2. 每个人单独开一个属于自己的分支,开发完毕再合并到dev分支

现在问题来了,A开发完毕,就合并到dev然后push后下班回家,B开发完毕也合并到dev,然后也进行push操作


A把本地dev分支push到github之后高高兴兴地回家了,此时B在merge到dev之后想要push,顿时傻眼了,出错了(A: 哈哈,幸亏我提交的早,第一个提交永远不会出问题)

这时怎么解决?肯定是根据提示先pull下来,在本地合并之后再push推到github。此时又出现一个问题,如果在合并过程中代码如果出现冲突怎么办?解决办法:

  1. 合并的时候所有开发人员都必须在场,不然B哪知道A的部分,出现冲突后B如果自作主张把A的部分全删了,这明显不行,需要A和B一起来处理冲突
  2. 合并时间不能太长,如果很长时间合并一次,那么冲突可能就很多,处理冲突就是一个大工程。

代码review: 一般是创建一个review分支,初学者的代码一般是合并到review,经过组长或领导审核通过之后才有可能合并到dev分支。

fork项目

github有很多开源的优秀的代码,如果想要把这些代码也复制一份到我的仓库,那我就可以用来学习或进行二次开发,fork就能帮我们完成这件事。

如果把网上源码fork之后,发现写的有bug,想要提建议,此时就用new pull request


然后等待原作者是否同意这个pull request,如果同意那么在作者的源代码中就推出现我提交的功能

其他

忽略文件

当你提交代码的时候不要把所有的代码都提交,尤其是你一些sql相关的文件(否则别人拿到你数据库地址登进去删库),还有pycharm自动生成的隐藏文件
在和.git同一级目录下,创建一个.gitignore的文件,里面写上*.sql,那么git就不会帮我们监测以sql结尾的文件的变化,自然也不会帮我们上传这些文件到github。windows下创建 .gitignore文件:ren .gitignore.txt .gitignore

当然,github已经帮我们写好了python版本的.gitignore文件,我们在创建仓库的时候就可以进行勾选

以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

版本相关


我们发现django源码有很多版本,那么我们自己写的代码怎么制作版本呢

想要下载对应版本: git clone -b v1.0 资源地址

git tag -a v1.0 -m '版本介绍'        本地创建Tag
git show v1.0                       查看
git tags -n                         查看本地Tag
git tag -l 'v1.4.2.*'               查看本地Tag,模糊匹配
git tag -d v1.0                     删除Tag
git push origin :refs/tags/v0.2     更新远程tag
git checkout v.10                   切换tag
git fetch origin tag V1.2
git push origin  --tags
git pull origin  --tags
posted @ 2018-08-01 09:02  龙云飞谷  阅读(583)  评论(0编辑  收藏  举报