[Git] git flow

7750 ワード

git flow


Git Flowは、Gitを使用してジオメトリを管理する際にブランチを効率的に管理するために使用されるブランチ管理ポリシーです.
コラボレーションを行う耿吾支路管理は非常に重要である.そうでなければ、一日中の衝突を解決し、問題が発生したときに開発したコードを再返し、その過程で開発を停止する必要がある人もいます.これらの問題プロセスを最小化し,効果的にイメージ管理を行うための戦略といえる.

branching models

  • git flow
  • (hotfix)- master -(release) - develop - feature
  • の利点:アプリケーションが最も多く、ステップごとに
  • を明確に区別する
  • cons:複雑...
  • プライマリブランチには、ユーザーが使用する単位のみがコミットされます.
    -
  • developerというブランチを持っています
  • モデル
  • は、生産サイクルの長い製品に適しています.
  • https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
  • github flow
  • master - feature
  • の利点:ブランチモデルを簡略化し、masterのすべてのコミットを
  • に配置できる
  • cons:CI依存性が高い.誰かがミスをしたら...(pull requestの使用を避ける)
  • master:標準ブランチのブランチに製品を配置します.
    開発ブランチは、開発者がこれらのブランチに基づいてそれぞれの作業を統合する機能です.
    feature:開発単位機能のブランチで、機能開発が完了したら開発ブランチにマージします.
    release:プライマリブランチに送信して配置する前に、まず品質検査を行うブランチ.
    hotfix:プライマリブランチに配備され、エラーが発生した場合に緊急に修復されるブランチ.

    Git flow実習


    Git flowは、プロジェクトの開始時に、他のブランチがない場合に直ちに導入することが望ましいし、git initを常にチェックし、コミットされていないファイルがないことを確認してから開始することが望ましい.
    作業環境の設定
    $ git clone https://github.com/0seo8/git-flow-practice.git
    $ cd git-flow-practice/
    $ git branch 
    git flow
    /*초기화*/
    $ git flow init // 나오는 프로세스 모두 엔터, 제공되는 이름을 그대로 사용하는 것이 좋다.
    $ git branch // *develope main , "develope로 자동이동, develope위에서 시작"
    
    /*feature생성*/ 
    $ git flow feature start fizzbuzz
    $ git branch   //  *feature/fizzbuzz   : "feature브랜치 하부에 fizzbuzz가 생성."
    
    /* 작업 예시 */
    $ touch fizzbuzz.py
    $ vi fizzbuzz.py 
    					//for _ in range(15):
                        		print('hello')
    $ git add fizzbuzz.py
    $ git commit -m "feat: Create fzzbuzz.py"
    $ vi fizzbuzz.py    
                          //for i in range(1, 15+1);
                              if i%3==0:
                                  print('fizz');
                              else:
                                  print (i);
    $ git add fizzbuzz.py
    $ git commit -m "feat: Print fizz if i is times of 3"
    $ vi fizzbuzz.py      // for i in range(1, 15+1);
                                if i%3==0:
                                    print('fizz');
                                elif i%5==0:
                                    print('buzz');
                                else:
                                    print (i);
                                    
    $ git add fizzbuzz.py
    $ git commit -m "feat: Print fizz if i is times of 5"
    						
    /* 기능 닫기 */ "fizzbuzz를 develope에 merge && fizzbuzz 삭제 && develop로 전환" 
    $ git flow feature finish fizzbuzz // 작업을 완료하면 merge commit이 뜸(바로 닫아도 됨)
    $ git branch // *developt main // feature/fizzbuzz가 사라짐.
    
    
    /* 릴리즈  시작 */ "develpe로부터 release브랜치 생성"
    $ git flow release start v0.0.1  [version naming 중요]
    
    /* 릴리즈 완료 */ "release를 mater에 merge","release이름으로 tag","release를 develop로 재병합", "release삭제"
    $ git flow release finish v0.0.1 
    
    $ git branch // *develop main
    
    /* branch  push */ 각각 branch를 push해주어야 합니다.
    $ git push -u origin develop   : -u는 처음 만들 때만 해주면 됨.
    $ git switch main
    $ git push origin main 
    
    /* 태그 push */
    $ git push --tags  //특정한 설명을 추가하고 싶을 때

    リリース済み(git flow release start v.0.0.1)

  • 2~3つのウィンドウが表示されます.
  • Merge branch 'release/v0.0.1'intoman:直接閉じることができます.
  • ラベルを含むrelease note
  • //작성예시
    implement fizz, buzz 
    
    Print fizz if i is times of 3
    Print buzz if i is times of 5
    otherwise, print i itself.