window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() GitFlow - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2019-08-13
ソフトウェア開発

ギットフロー

ダニエル・グレック

この文書は、社内のGit Flowルールを統一するために書かれました。この方法は、純粋なGit Flowを導入するものではなく、Git FlowとGitLab Flowの両方をミックスしたもので、長年にわたって会社のベストプラクティスとして取り組んできたものです。リポジトリの履歴をきれいに読みやすく保ち、変更とプロジェクトのライフサイクルをよりよく管理するのに役立ちます。

この文書は、社内のGitFlowルールを統一するために書かれました。この方法は純粋なGitFlowを導入するものではなく、GitFlowとGitLab Flowの両方をミックスしたものであり、長年にわたって会社のベストプラクティスとして取り組んできたものです。リポジトリの履歴をきれいで読みやすいものにし、変更点や プロジェクト ライフサイクル。

リポジトリの初期化

リポジトリを初期化した後 開発する そして マスター ブランチがデフォルトで含まれていない場合は、それを追加する。developブランチには、開発用の コード これは、新機能を含む master ブランチのミラーです。masterには安定版のコードが含まれ、本番状態を表します。どちらも寿命は無限で、Git Flowの他のブランチと比べて、削除されることはありません。適切な保護ルールを設定する マージ前にプルリクエストのレビューが必要 そして マージ前にステータスチェックの合格が必要.また、選ばれた人だけに許可することもできます。 チーム メンバーが変更をマスターにマージする。

ギットフロー
$ git init
$ git commit --allow-empty -m "最初のコミット"
$ git checkout -b develop master

注: 例えば、利用可能な環境を表すために、さらに無限ブランチを追加することがプロジェクトにとって重要な場合もある。しかし、可能であれば「2つのルール」を守ってください。

特徴的な枝

ある機能を使って作業を開始する場合、まず、自分の 開発する ブランチを同期させた。

 $ git checkout develop && git pull --rebase

次に、featureブランチにチェックアウトします。指定されたスキーマにそれぞれ名前をつけてください: 機能-JIRA-TASK-ID または、そのルールを破って別の名前をつけることもできます。この場合、release、hotfix、bugfix、development、master ブランチに予約されているパターンと衝突しないようにしてください。JIRA タスク ID を保持することで、機能ブランチをより効果的に管理できるようになります。

$ git checkout -b feature-JIRA-TASK-ID develop

このブランチは、指定した機能が開発され、その後親ブランチにマージされる限り存在するはずです。ローカルブランチにコミットするには、このコマンドに従ってください:

 $ git add .
 $ git commit -m "JIRA-TASK-ID: タスクの説明"

早く頻繁にコミットする」ルールに従って、ローカルブランチにコミットを追加することをお勧めします。しかし、最終的には JIRA タスクを表す単一のコミットにまとめなければなりません。頻繁にコミットすることは、開発履歴を管理するのに役立ちます。機能の準備ができたら、ブランチを開発するために Pull Request をオープンしましょう。まず、ローカルブランチをプッシュします:

 $ git push origin feature-JIRA-TASK-ID

ブランチの準備ができたら プルリクエスト GitHubのこの記事に従ってください: https://help.github.com/en/articles/creating-a-pull-request

プルリクエストを開く前に、以下を確認してください:

  • a 適切な記述 通常は、次のようになる。 JIRAタスクにリンクするしかし、現在のコードに関連する有用な情報を含めることもできる。
  • サークルCI ステップは正常に通過した
  • あなたの チームメンバーが割り当てられた - チームメンバー全員をアサイニーに含めるのは良い習慣です。
  • その 査読者が選ばれた - レビュアーの人数はチームによって異なる
  • あなたのコードは実際にレビューの準備ができている 最後にコードを見て、リファクタリングすることが残っていないかもう一度考え、ローカルでテストする。 そして、次のステップに進む準備ができていることを確認する。
  • そこには マージ競合がなく、ブランチがdevelopで最新である。 - もしあれば、まずそれを解決すること
$ git checkout develop && git pull --rebase
$ git checkout feature-JIRA-TASK-ID && git rebase develop # squash には -i フラグを使用する。
$ git push -f origin feature-JIRA-TASK-ID 1TP63F フラグがリモートリポジトリを上書きするので、注意してください。
  • 重要なコミットだけを残す - 各コミットは、例えばJIRAタスクで表現されるべきである、 JIRA-TASK-ID: 新機能の設定; であるべきだ。 リベース中につぶれた あなたのブランチとdevelopブランチ
  • を持っている。 適切なデスティネーション・ブランチを選択
  • をお忘れなく。 JIRA タスクのステータスを変更する

機能ブランチのマージ

あなたの変更をdevelopブランチにマージする時が来た:

  • プルリクエストが選ばれたチームメンバーによって承認された
  • すべてのテストが正常に終了
  • マージ競合はなく、コミット履歴も正常です。

これは、プロジェクトマネージャーか機能開発者のどちらかが行うことができる。マージを行うには、以下の手順に従ってください:

 $ git checkout develop
 $ git merge feature-JIRA-TASK-ID
 $ git push origin develop
 $ git branch -d feature-JIRA-TASK-ID
 $ git push origin :feature-JIRA-TASK-ID

これで JIRA タスクのステータスを変更できるようになりました。

リリース

リリースブランチは、現在のリリースの責任者が作成する必要があります。通常、リリースは定期的に作成されます。 スプリント ライフサイクル。

セマンティック・バージョニング

リリースブランチに適切な名前と対応するタグをつけるのは、最初のうちは簡単なことではありません。セマンティック・バージョニング (https://semver.org/)を使用することで、より良い制御が可能になり、gitの履歴を読みやすくなります。バージョン文字列は MAJOR.MINOR.PATCH スキーマに従って作成されます:

  • MAJOR - 互換性のないAPIの変更を表す変更
  • マイナー - 後方互換性のある方法で新機能を追加する。
  • PATCH - 後方互換性のあるバグ修正の追加

また、ベータブランチやレガシーブランチなどの特別な接尾辞を使用したり、プレリリースを作成したりすることもできます。その場合は、1.1.0-beta.4、1.1.0-beta.5、1.1.0-alphaなど、適切な名前をつけてください。

リリースの作成

releaseブランチはdevelopブランチの子であるべきで、バグフィックスに関連するコミットだけを含むことができる。

ブランチ名はリリース・バージョンに基づき、接頭辞にreleaseをつける: リリース-MAJOR.MINOR.PATCH. リリースブランチは 自動と手動の両方で完全テスト にある。 ステージング環境.バグが発生した場合、これは適切な修正をプッシュしてプロセス全体を再実行する最後の機会です。それから、package.json のようなファイルに現在のリリースバージョンの文字列の変更を加えて、リリースコミットをプッシュする必要があります。また、CHANGELOG.md ファイルにも影響を与えるべきです。これは、適切なリリースの前にすべての変更を追跡し、マージ処理が完了したときに GitHub リリース用のコンテンツを準備するのに役立ちます。単一ファイルのアップデートは、リリースのすべての変更点を3つのカテゴリに分類して構成する必要があります: 機能、修正、メンテナンスです。

しかし最初のステップでは、developブランチとmasterブランチの両方が最新であることを確認する。

 $ git checkout master && git pull --rebase
 $ git checkout develop && git pull --rebase
 $ git merge master
 $ git checkout -b release-M.M.P
 $ git add .
 $ git commit -m "製品 名称 M.M.Pリリース"
 $ git push origin release-M.M.P

この時点で、リリースブランチを持つ master に別のプルリクエストを作成することにしてもよい。リモートマシンですべてのテストがうまくいくかどうか、追加でチェックするのもよいだろう。

 $ git checkout master
 $ git merge release-M.M.P
 $ git tag -a M.M.P # 追加メッセージは -m フラグで設定できます。
 $ git push origin M.M.P
 $ git push origin master
 $ git branch -d release-M.M.P
 $ git push origin :release-M.M.P

次に GitHub のリリースページに移動し、"Draft new release" ボタンを押します。表示されたフォームで、現在のバージョンのタグを選択し、リリースのコミットと同様のリリースタイトル (Product Name M.M.P release) と、CHANGELOG.md ファイルに基づいた適切な説明を設定します。公開プロジェクトの場合、説明には現在のリリースに含まれるすべてのPRのリストを含める必要があります。

リリースブランチでバグフィックスが適用された場合は、developブランチを更新してください:

$ git checkout develop && git merge master
$ git push origin develo

ホットフィックスとバグフィックス

バグとホットフィックスの主な違いは、対象ブランチである。

バグ修正

バグ修正は、リリースブランチにパッチを当ててから master にマージしてください。まず、現在の feature ブランチからブランチを作成します。ローカルに最新のブランチがあることを確認してください。

 $ git checkout release-M.M.P && git pull --rebase
 $ git checkout -b bugfix-M.M.P

その後、必要な変更をコミットする。プロセスが終了したら、プルリクエストを作成してリリースブランチを対象とします。feature branch のセクションのガイダンスに従ってください。最終的なコミットタイトルは、指定されたスキーマに合わせる必要があります:「Bugfix M.M.P: 問題の本質の修正" です。プルリクエストが承認されたら、それを現在のリリースにマージします。

 $ git checkout release-M.M.P.
 $ git merge bugfix-M.M.P
 $ git push origin release-M.M.P

ホットフィックス

masterブランチでHotfixを行うには、対象となるブランチがmasterブランチになったことを念頭に置きながら、バグフィックスとよく似た手順を踏む必要があります。

 $ git checkout master && git pull --rebase
 $ git checkout -b hotfix-X.Y.(Z+1) # M.M.P は現在のリリースを表します。

そして、通常の開発ステップに従い、プロセスが終了したら master ブランチをターゲットとしてプルリクエストを作成します。最終的なコミットは、指定されたスキーマ "Hotfix X.Y.(Z + 1):問題本質の修正".すべてのチェックポイントが正常に通過したら、master にマージします。このステップはバグフィックスの場合とは異なり、現在のリリースバージョンをバンプする必要があります。

 $ git checkout master && git pull --rebase
 $ git merge hotfix-X.Y.(Z+1)
 $ git tag -a X.Y.(Z+1) # 追加メッセージは -m フラグで設定できます。
 $ git push origin X.Y.(Z+1)
 $ git push origin master
 $ git branch -d hotfix-X.Y.(Z+1)
 $ git push origin :hotfix-X.Y.(Z+1)
 $ git checkout develop && git merge master
 $ git push origin develop

カンニングペーパー

リポジトリ開設

 $ git init
 $ git commit --allow-empty -m "最初のコミット"
 $ git checkout -b develop master
 $ git push origin develop
 $ git push origin master

特徴

$ git checkout develop && git pull --rebase
$ git checkout -b 機能-JIRA-TASK-ID develop

開発とコミットの開始

$ git add .
$ git commit -m "IRA-TASK-ID: Task description" #initial commit
$ git push origin feature-JIRA-TASK-ID

プルリクエストを開く

リベースとプルリクエストの準備

$ git checkout develop && git pull --rebase
$ git checkout feature-JIRA-TASK-ID && git rebase develop # squash には -i フラグを使用する。
$ git push -f origin feature-JIRA-TASK-ID 1TP63F フラグがリモートリポジトリを上書きするので、注意してください。

変更をマージしてブランチを削除する

$ git checkout develop # ブランチは、この段階で develop ブランチと同期しておく必要があります。
$ git merge feature-JIRA-TASK-ID
$ git push origin develop
$ git branch -d feature-JIRA-TASK-ID
$ git push origin :feature-JIRA-TASK-ID

リリース

$ git checkout master && git pull --rebase
$ git checkout develop && git pull --rebase
$ git merge master
$ git checkout -b release-M.M.P

リリースコミットを作成する

$ git add .
$ git commit -m "製品名 M.M.P release" #initial commit
$ git push origin release-M.M.P

プルリクエストを開く

変更のマージ、リリース、ブランチの削除

$ git checkout master #ブランチはこの段階でmasterブランチと同期する必要があります。
$ git merge release-M.M.P
$ git tag -a M.M.P #追加メッセージは-mフラグで設定できます。
$ git push origin M.M.P
$ git push origin master
$ git branch -d release-M.M.P
$ git push origin :release-M.M.P

バグ修正

$ git checkout release-M.M.P && git pull --rebase
$ git checkout -b bugfix-M.M.P

$ 修正をコミット
$ git add .
$ git commit -m "Bugfix M.M.P: Problem essence fix" 1TP63初期コミット
$ git push origin bugfix-M.M.P

プルリクエストを開く

変更をマージしてブランチを削除する

$ git checkout release-M.M.P #ブランチは、この段階で現在のリリースブランチと同期させる。
$ git merge bugfix-M.M.P
$ git push origin release-M.M.P
$ git branch -d bugfix-M.M.P
$ git push origin :bugfix-M.M.P

ホットフィックス

$ git checkout master && git pull --rebase
$ git checkout -b hotfix-X.Y.(Z+1) # M.M.P は現在のリリースを表します。

$ 修正をコミットする
$ git add .
$ git commit -m "Hotfix M.M.P: Problem essence fix" 1TP63初期コミット
$ git push origin bugfix-M.M.P

プルリクエストを開く

変更のマージ、リリース、ブランチの削除

$ git checkout master # ブランチは、この段階で現在の master と同期させておきます。
$ git merge hotfix-X.Y.(Z+1)
$ git tag -a X.Y.(Z+1) # 追加メッセージは -m フラグで設定できます。
$ git push origin X.Y.(Z+1)
$ git push origin master
$ git branch -d hotfix-X.Y.(Z+1)
$ git push origin :hotfix-X.Y.(Z+1)
$ git checkout develop && git merge master
$ git push origin develop

続きを読む

  • Codestのソフトウェア構築のためのグッドプラクティス:サークルCI
  • Netflix字幕スタイラーを使ってGoogle Chrome拡張機能を作成するには?
  • React:最も一般的なJavaScriptフレームワーク

関連記事

ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察

The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...

ザ・コデスト
ソフトウェア開発

ラトビアを拠点とするソフトウェア開発企業トップ10社

ラトビアのトップソフトウェア開発企業とその革新的なソリューションについて、最新記事でご紹介します。ラトビアの技術リーダーたちがあなたのビジネスをどのように向上させるかをご覧ください。

thecodest
エンタープライズ&スケールアップ・ソリューション

Javaソフトウェア開発の要点:アウトソーシングを成功させるためのガイド

outsourcingのJavaソフトウェア開発を成功させるために不可欠なこのガイドを読んで、The Codestで効率性を高め、専門知識にアクセスし、プロジェクトを成功に導きましょう。

thecodest
ソフトウェア開発

ポーランドにおけるアウトソーシングの究極ガイド

ポーランドのoutsourcingの急増は、経済、教育、技術の進歩がITの成長とビジネス・フレンドリーな環境を促進していることによる。

ザ・コデスト
エンタープライズ&スケールアップ・ソリューション

IT監査ツール&テクニック完全ガイド

IT監査は、安全かつ効率的で、コンプライアンスに準拠したシステムを保証します。その重要性については、記事全文をお読みください。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese