おそらく、すべてのリポジトリを中央リポジトリの個別のブランチにプッシュすることから始めます。そこから、ブランチ間で簡単にリベース、マージなどを行うことができます。
git-age、gitnub、gitx、giggleなどの優れた視覚化ツールは驚異的に機能しますが、分岐点を見つけられない限り、おそらく作業はかなり退屈になります。すべてのブランチに同様のパッチが適用されている場合は、(インタラクティブな)リベースを使用して、コミットが同じ順序になるように並べ替えることができます。次に、ブランチを「圧縮」し、コミットをマスターに配置してブランチポイントを上に移動できます。rebase を使用してコミットを並べ替える方法についての優れた説明は、こちらにあります。
Git Howto Indexが提供するリンクに、実行する必要があるアクションが記載されている可能性があります。優れたチート シートは、いつでも手の届くところにあると便利です。また、Eric Sinks の投稿「DVCS and DAGs, Part 1」のフォローアップには、何か役立つ情報が含まれているのではないかと思います (そうではありませんでしたが、興味深い読み物でした)。
追加の便利なリンクは次のとおりです。Git Magic、Git Ready、およびSourceMage Git Guide
すべてのレポに、各パッチの目的を伝える適切なコミットメッセージがあったことを願っています。それはそれかコードレビューです:)
カスタマイズを維持する方法については、次のことがうまくいきました。
汎用コードからカスタマイズされたコードを分離する (または分離しておく) ことから始めました。次に、2 つのアプローチを試しました。どちらもうまくいきました:
- すべての展開には、カスタマイズが保持された独自のリポジトリがありました。
- すべての展開は、「カスタマイズ」リポジトリに独自のブランチを取得しました。
最初のデプロイの後、2 番目が事実であることがわかったので、カスタマイズされたリポジトリ (alt. 1、現在使用しているアプローチ) とベース/コアでの重複を減らすために、将来のカスタマイズ/カットポイントを予測することに時間を費やしました。レポ。
はい、コアとカスタマイズの分割がずれていることに気付くたびに、容赦なくリファクタリングを試みます:)