web-dev-qa-db-ja.com

GitHubでプロジェクトのバージョンを制御するにはどうすればよいですか

GitHub この頃(私が仕事をしているチームで唯一の人です)本当にそれをどのように感じているのかをできるだけ多くの時間を費やそうとしています実際の企業アプリケーションのようになります。

私が持っている1つの質問は、バージョンを制御することです。プロジェクトを始めたとしましょう。次に、チームメンバーがいくつかのブランチを作成し、そこで開発しました。制作の準備ができたら、すべてのブランチをmasterブランチとマージしました。最後に、バージョン1.0で公開します。

これでバージョン1.0が有効になり、そのバージョンのソフトウェアについていくつかの問題が報告されています。プロジェクトを急いで導入した問題を修正するために、バージョン1.1の開発を開始したいと思います。

さて、問題はこれです:

ここでバージョン管理をどのように制御する必要がありますか?

v1.0の新しいブランチを作成し、そこにソフトウェアのバージョン1.0を保持し、いくつかのブランチで(またはそうではなく)開発し、masterとマージして、バージョン1.1でライブする必要がありますか?

そのような状況のためにそこに慣例がありますか?

13
tugberk

次のブランチモデル を見つけました(採用し始めました)==:

Image from nvie.com

(記事の画像)

その記事には多くの優れた実践と厳格なルールが記載されています。私はそれを強くお勧めします。

興味がある点:

  • Masterブランチは、バージョンにタグを付ける場所です。ここでは開発は行われません。本番環境にデプロイされたバグの場合、ホットフィックスブランチでバグを修正し、マージして新しいバージョンにタグを付けます。
  • 開発は、develブランチとfeatureブランチで行われます。個人的には、develブランチと機能ブランチの機能のバグ修正を行っています。
  • ソフトウェアがリリースに到達し始めると、私はブランチをリリースしてブランチを開きます。リリースブランチは私が最後の仕上げをするところです。バージョン番号の変更、メタデータの変更などのマイナーなバグ修正。完成したら、それをマスターにマージし、タグを付けて、バージョンと呼びます。
  • 2つの主要なブランチ:マスターは「聖なるブランチ」です。そのHEADは常に最新の製品コードであり、developは毎晩のブランチです。そのHEADは常にコードへの最新の(ただし不安定な可能性があります)追加を反映しています。

あなたの特定のケースでは、ステップはそのバージョンがどれだけ急いでいたかに依存します。取り除かれた機能の場合は、開発リリースに戻ってすべてをやり直します。デプロイされたバージョンのバグの場合は、ホットフィックスブランチに分岐し、バグを修正して、マージしてv1.1にタグを付けます。両方の場合は、最初にバグを修正してから、2番目に説明した機能を追加します。

19
Tamás Szelei

私がよく目にしたのは:

  • マスターはあなたのための製品です。最終的には、将来のすべてのバージョンx.0がマスターになります。
  • 本番環境のバージョンごとにタグ/ブランチを作成して、それを必要とするすべての顧客に対して引き続きサポートできるようにします。
  • どちらか一方の修正をマージすることは、ケースごとに対処することです。
1
xsace