3

2つのブランチを持つgitリポジトリがあるとします。

  • 1.0-統合
  • 2.0-統合

製品の2つのバージョンを維持しているため、両方のブランチで作業する必要があります。

同時に、この製品を他のプロジェクトで使用しています。たとえば、IDEでソースを完成させることができます。

ファイルシステムのどこかに1.0_shortcutディレクトリを作成する方法を知っていますか(私はLinuxを使用しており、シンボリックリンクが利用可能です)。これは常に1.0統合ブランチを参照し、別の2.0_shortcutディレクトリは2.0統合ブランチを参照します。マスターリポジトリのチェックアウトされたブランチに関係なく?

注:使用を検討しました

  • git-new-workdir、ただし、ファイルは自動的に同期されません(ブランチ1.0でファイルをコミットすると、マスターリポジトリで統合されますが、1.0_shortcutディレクトリで実行しない限り、このファイルは1.0_shortcutディレクトリで使用できませんgit reset --hard
  • git clone --shared、ただし、ファイルは自動的に同期されません(ブランチ1.0でファイルをコミットすると、マスターリポジトリで統合されますが、1.0_shortcutディレクトリで実行しない限り、このファイルは1.0_shortcutディレクトリで使用できませんgit fetch origin && git checkout origin/1.0-integration

さらに調査した後、@ Michaelの助けを借りて、これに利用できる魔法はないと思います…受け入れ可能な解決策(私自身のニーズのために、他のいくつかの解決策があなたのニーズに足を踏み入れるかもしれません)は次のとおりです。

  • メジャーブランチ(1.0 *、2.0 *、…)ごとに1つの作業ディレクトリがあります。git-new-workdir
    • 長所:
      • セットアップが簡単
      • ストレージの点で効率的(blobのリポジトリは1つのみ)
      • 各メジャーバージョンに簡単にアクセスできます
    • 短所:
      • 各作業ディレクトリで最終的に何をチェックアウトするかについて注意する必要があります(1.0の作業ディレクトリで2.2をチェックアウトすることを妨げるものは何もありません)
      • タグごとに1つの作業ディレクトリを合理的に持つことはできません
  • これらのdirを作成するためにいくつかのフックを書く
    • 長所:
      • 完全にカスタマイズ可能
    • 短所:
      • 多くのストレージを使用します
      • 書くのが面倒
4

0 に答える 0