3

私が取り組んでいるコーディング プロジェクトのタイプでは、多くの場合、人々が使用する共通のコード ベースがあり、その上に独自のパーソナライズされたコードを構築します。これを行う方法は、共通の基本コードを独自の git-hub リポジトリに保持することです。これを人々がフォークして変更できるようにします。

ただし、共通のベース コード リポジトリに変更をプッシュする場合は、パーソナライズされたコードを含めたくないため、マージ時に含めないように注意する必要があります。毎回パーソナライズされたコードを無視するようにgitに指示する必要なく、これを行う簡単な方法はありますか?

可能であれば、ベース コードを変更するという特定の目的のために、ベース コードの個別のフォークを作成することは避けたいと考えています。

4

1 に答える 1

2

パーソナライゼーションが特定のファイルに限定されており、そのコンテンツを見ているだけであることを検出する方法がある場合は、次のことができます。

  • バージョンのみのテンプレートファイル。これは常に「共通コンテンツ」リポジトリにプッシュされます。
  • 非公開の値ファイルを保持します (適切な値を含むファイルで、git リポジトリによって常に無視され、プッシュされることはありません)
  • バージョン スクリプト ファイルは、テンプレート ファイル、値ファイルを取り、適切な値の最終結果ファイルを自動的に生成できます。その生成されたファイルもプッシュされず、git リポジトリによっても無視されます。

アイデアは、チェックアウト時にその生成を自動的に行うことです。
これを行うには、コンテンツ フィルター ドライバーを宣言します。

コンテンツ フィルタ ドライバ

チェックアウト時に、smudgeスクリプト内で、テンプレート ファイルのコンテンツ(これらの「フィルター ドライバー」スクリプトにはフィルターしているファイルの名前がありません) を検出し、特定の場所で値ファイルを探して適切なコンテンツを生成します。道。

于 2012-08-11T14:39:45.830 に答える