1

2 つの git リポジトリがあります。両方とも、同じ CVS リポジトリの別のブランチと手動で同期を維持するマスター ブランチと、適切な量の機能ブランチを持っています。

例えば

  • Git リポジトリ OLD:
    • master (CVS ブランチ OLD_VERSION を手動で追跡)
    • 機能-abc-バックポート
    • 機能-xyz
  • Git リポジトリ現在:
    • master (CVS リポジトリの HEAD を手動で追跡)
    • 機能 abc
    • 機能-123

いくつかのプレフィックスを追加して、OLD から CURRENT にすべてのブランチをインポートしたいと考えています (例: OLD-master、OLD-feature-abc-backport、OLD-feature-xyz)。これは可能ですか?

4

1 に答える 1

2

ブランチのインポートが可能です。
インポート後の管理は、より複雑になる可能性があります。

インポート:

cd current
git remote add old /url/to/git/old
git fetch old
git branch --track old_master old/master
git branch --track old_feature-abc-backport old/feature-abc-backport
git branch --track old_feature-xyz old/feature-xyz

管理します:

問題は、git 'old' リポジトリのコミットは git 'current' リポジトリのコミットと同じですか?
はいの場合、デルタが制限されるため、ブランチ old_xxxをブランチにマージできます。current


実際、少なくとも最初のステップでは、主にアーカイブ目的でインポートを行いたいと考えています。ブランチのメンテナンスが終了したとき

次に、単純なフェッチで十分です。

old からのすべてのブランチはすぐに次のように参照されold/abranchます。'old_' プレフィックスを持つローカル ブランチを作成する必要はありません。
それらの完全な履歴は現在のリポジトリで (フェッチ後に) 利用可能になり、各oldブランチはリモート トラッキング ブランチ(フェッチによって作成された) によってHEAD参照されます。refs/remotes/old/abranch

于 2013-08-13T12:24:39.357 に答える