zoukankan      html  css  js  c++  java
  • github或码云协同开发

    协同开发

    1、引子:假如三个人共同开发同一份代码,每个人都各自安排了任务,当每个人都完成了一半的时候,提交不提交呢?

    要提交,提交到dev吗,都上传了一半,这样回家拿出来的代码根本跑不起来。所以,

    为每一个人创建一个分支,各自都在各自的分支上写代码,互不影响。

    很短时间内大家暂时先合并一次,不然冲突太多了。但是这个分支不是dev,而是review分支,当老大看完没问题之后再合并到dev分支。

    协同开发的两种方式:

    方式一:创建项目合作者:

    码云:

    github:

    方式二:创建组织,邀请成员

    码云:

    github:

    创建完之后写代码

    先创建了一个dev的分支
            git branch dev 
            git checkout dev 
            git push origin dev 
    又创建了一个review的分支
            git branch review
            gir checkout review
            git push origin review 
    创建自己的分支
            git branch a
            git branch b
            git branch c
            
            git checkout c
            git pull origin review
    

      假如现在有两个人在进行开发

    A创建了个文件
                git branch A 
                git checkout A
                touch a.py 
                git add . 
                add commit -m 'inital'
                git push origin A 
                ls
                vim a.py  #写了一些内容
                git add . 
                add commit -m 'a功能开发完毕'
                git push origin A
                #现在两人都写完了,开始合并和review进行合并了
                git checkout review
                git pull origin review  #远程的review拉下来
                #合并发到review
                git merge A 
                ls 
                git status 
                git push origin review 
                
                #再次写的时候
                git pull origin review  
    B创建了个文件
                git branch B 
                git checkout B 
                touch b.py 
                ls 
                git add . 
                add commit -m 'b功能开发完毕'
                git push origin B 
                ls
                vim c.py  #写了一些内容
                git add . 
                add commit -m 'c开发完毕'
                git push origin B 
                #现在两人都写完了,开始合并和review进行合并了
                git checkout review
                #git pull origin review  #如果先没有,把远程的review拉下来
                #合并发到review
                git merge B 
                ls 
                git status 
                git push origin review   #这时候的review是最新的,那么A先提交了,完了B还得拉先来再合并一次
            老大看了review分支,如果OK,可以放到dev分支进行测试,如果测试没有问题了
            才放到master分支。
            master分支:线上的版本,永远保证线上的版本,无论是回滚到哪都是能用的
    

    GIT忽略文件

    当你提交代码的时候不要把所有的代码都提交,尤其是你自己的隐藏文件,还有pycharm自动生成的隐藏文件,

    两个方式:

      手动修改:在你add的时候不要把它添加进去就行了

            创建.gitignore文件

             码云:

            

            github:

                  

      修改 :需要改一下配置文件

    .gitignore
    
    vim . gitignore
    
    /idea
    
    touch a.log
    
    touch b.log
    
    不要所有.log文件了,在编辑的时候写上*.log
    

    一些规则

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

     样板:

    # Byte-compiled / optimized / DLL files
    __pycache__/
    *.py[cod]
    *$py.class
    
    # C extensions
    *.so
    
    # Distribution / packaging
    .Python
    build/
    develop-eggs/
    dist/
    downloads/
    eggs/
    .eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    wheels/
    *.egg-info/
    .installed.cfg
    *.egg
    MANIFEST
    
    # PyInstaller
    #  Usually these files are written by a python script from a template
    #  before PyInstaller builds the exe, so as to inject date/other infos into it.
    *.manifest
    *.spec
    
    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt
    
    # Unit test / coverage reports
    htmlcov/
    .tox/
    .coverage
    .coverage.*
    .cache
    nosetests.xml
    coverage.xml
    *.cover
    .hypothesis/
    
    # Translations
    *.mo
    *.pot
    
    # Django stuff:
    *.log
    .static_storage/
    .media/
    local_settings.py
    
    # Flask stuff:
    instance/
    .webassets-cache
    
    # Scrapy stuff:
    .scrapy
    
    # Sphinx documentation
    docs/_build/
    
    # PyBuilder
    target/
    
    # Jupyter Notebook
    .ipynb_checkpoints
    
    # pyenv
    .python-version
    
    # celery beat schedule file
    celerybeat-schedule
    
    # SageMath parsed files
    *.sage.py
    
    # Environments
    .env
    .venv
    env/
    venv/
    ENV/
    env.bak/
    venv.bak/
    
    # Spyder project settings
    .spyderproject
    .spyproject
    
    # Rope project settings
    .ropeproject
    
    # mkdocs documentation
    /site
    
    # mypy
    .mypy_cache/
    

      

    GIT版本Tag

        git tag -a V0.1 -m 'version0.1'      本地创建Tag
        git show v0.1                       查看
        git tags -n                         查看本地Tag
        git tag -l 'v1.*'                   查看本地Tag,模糊匹配
        git tag -d v0.1                      删除Tag
        git push origin :refs/tags/v0.2     更新远程tag
        git checkout v0.1                  切换tag
        git fetch origin tag V1.2
    
        git push origin  0.1
        git pull origin  0.1
        
        git clone -b v0.1
        
        
    #操作示例    
    XXX MINGW64 ~/PycharmProjects/study (dev)
    $ git tag -a V0.1 -m 'version0.1'
    
    XXX MINGW64 ~/PycharmProjects/study (dev)
    $ git show v0.1
    tag V0.1
    Tagger: XXX <XXX@qq.com>
    Date:   Sun Jul 1 00:13:25 2018 +0800
    
    version0.1
    
    commit cc915e200275d56f8630a35043e5c973c9521233 (HEAD -> dev, tag: V0.1)
    Merge: fb39758 8a7f6ea
    Author: XXX <XXX@qq.com>
    Date:   Sat Jun 30 13:45:28 2018 +0800
    
        merge 3.py:Merge branch 'dev' of https://gitee.com/XXX/study1 into dev
    
    
    XXX MINGW64 ~/PycharmProjects/study (dev)
    $ git  tag -n
    V0.1            version0.1
    
    XXX MINGW64 ~/PycharmProjects/study (dev)
    $ git tag -l 'V*'
    V0.1
    
    $ git checkout V0.1
    Note: checking out 'V0.1'.
    
    XXX MINGW64 ~/PycharmProjects/study ((V0.1))
    $ git push origin V0.1
    Counting objects: 5, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (5/5), done.
    Writing objects: 100% (5/5), 620 bytes | 620.00 KiB/s, done.
    Total 5 (delta 2), reused 0 (delta 0)
    remote: Powered by Gitee.com
    To https://gitee.com/XXX/study1.git
     * [new tag]         V0.1 -> V0.1
    
    XXX MINGW64 ~/PycharmProjects/study ((V0.1))
    $ git pull origin V0.1
    From https://gitee.com/XXX/study1
     * tag               V0.1       -> FETCH_HEAD
    Already up to date.
    

      查看tag:

  • 相关阅读:
    很长的下拉框菜单
    Pure CSS Buttons – Good Button Style and No Images
    ssh 配置
    php大量session存储到内存中,散列及过期回收
    array_append_distinct, array_erase函数
    关于C# 中的Attribute 特性(转载)
    Jquery如何操作Table的某一个td
    ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期
    ASP.NET应用程序生命周期趣谈(五) IIS7瞎说
    ASP.NET应用程序生命周期趣谈(三)
  • 原文地址:https://www.cnblogs.com/xiao-apple36/p/9249161.html
Copyright © 2011-2022 走看看