枝の論理的な説明/マージ構造
構造は基本的にあなたが言ったことを、次のとおりです。統合ブランチを、そして枝を備えています。
このようなワークフローでは、すべての開発が次のリリースに移行しないことを理解することが重要です。
DVCSでは、ブランチを公開して複製できることを理解することも重要です。最後の点(出版)がマージに大きな影響、すなわち、 コマンドがあります
:
- は
- リベースをマージします。開発者は任意の統合ブランチ上の彼の仕事をマージしているときはいつでも
(彼は「中央」のリポジトリからプル)、私が推薦する:
# switch back to previous release tag (from where feature branches for next release where done)
$ git checkout previousReleaseTag
# create one's own private
$ git checkout -b myIntegrationBranch
# merge or cherry-pick what we want to actually put in the next release
$ git merge... from our feature branch
# rebase that private integration branch on top of actual integration branch
$ git rebase integrationBranch
最後のリベースはあなたの地元の歴史を書き換えますブランチでは、とにかく公開しません(害はありません)。
新しい機能がすべて動作したら、そのプライベートブランチを関連する統合ブランチの現在のHEADにマージすることができます。
複数のチームが作業を共通のブランチにマージする必要があるため、「プライベートブランチ - マージまたはチェリーピック - リベース - ローカル解決 - マージバック」が必要なワークフローです。プライベートブランチで公開したいものを共通ブランチにマージする前に再生する必要があります。そうしないと、各チームが共通ブランチのHEADで表されるものを破壊する可能性があります。質問で
その他の詳細:
うーん。開発者が自分のマシンの外に公開された機能を含めたい場合、最後の "git rebase"はそれらのコミットの履歴を書き換えます。すべての機能を公共の統合ブランチ(マスター?)にマージするだけの方がクリーンです。 –
@マリアス:しかし、私が "最後のrebaseはあなたのローカル統合の歴史を書き換えますが、ブランチではとにかく公開しません。 – VonC