zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    【C/C++开发】c++ 工具库 (zz)
    【机器学习】半监督学习
    【Python开发】Pycharm下的Anaconda配置
    【C/C++开发】emplace_back() 和 push_back 的区别
    【C/C++开发】容器set和multiset,C++11对vector成员函数的扩展(cbegin()、cend()、crbegin()、crend()、emplace()、data())
    【C/C++开发】C++11 并发指南三(std::mutex 详解)
    【C/C++开发】C++11 并发指南二(std::thread 详解)
    【C/C++开发】C++11 并发指南一(C++11 多线程初探)
    【C/C++开发】STL内嵌数据类型: value_type
    个股实时监控之综述
  • 原文地址:https://www.cnblogs.com/longyunfeigu/p/9399350.html
Copyright © 2011-2022 走看看