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:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM