16

私の git リポジトリには、さまざまな速度で変化する多数のテンプレート ファイルがあります。これらは、HTML ページの生成に使用されます。誰かが問題を報告した場合、どのバージョンのテンプレート ファイルに問題があるかを教えてもらいたいです。現在、ファイルを変更するときに手動でファイルに日付を入力しています。または、まあ、私はしようとします。私はほとんどの時間を忘れます。

少なくとも理論的には、git smudge と clean フィルターを使用してファイルを修正し、最終更新日を自動的に挿入できるはずです。これは素晴らしいことです。

ただし、あるマシンで開発し、準備ができたら別のマシンにプッシュ/プルします。

汚れときれいなフィルターを他のマシンに表示するにはどうすればよいですか? 奇妙なスクリプトをパスに追加する必要はありません。これはこの 1 つのリポジトリにのみ必要なので、完全に自己完結型にしたいと考えています。オンラインではすべて、「このフィルター定義を ~/.gitconfig に追加し、これらのスクリプトをパスに追加してから、リポジトリの .gitattributes ファイルをセットアップする」と書かれています。新しいコンピューターに移動してリポジトリのクローンを作成すると、すべてのクリーンとスマッジが自動的に構成されるようにしたいと考えています。

誰かがこれをしましたか?

4

2 に答える 2

4

で説明したように、これらの構成を宣言するテンプレート ディレクトリgit cloneをセットアップできます。 つまり、そのテンプレート フォルダーには、これらの smudge/clean ディレクティブを最小限に抑える必要があります。
.gitconfig

filter.manage_date.smudge ${GIT_TEMPLATE_DIR}/smudge-script
filter.manage_date.clean ${GIT_TEMPLATE_DIR}/clean-script

GIT_TEMPLATE_DIRそのテンプレート フォルダーを参照する環境変数を設定 (エクスポート) するだけです。

で始まる絶対パスを使用することで${GIT_TEMPLATE_DIR}、これらのスクリプトを$PATH. そして、そのスクリプト パスはマシンごとに異なる場合があります。それぞれが独自の${GIT_TEMPLATE_DIR}パスを持つことができます。

最後に、これ.gitattributesはリポジトリの一部であるため、何もする必要はありません。

そのセットアップを使用すると、「新しいコンピューターに移動してリポジトリのクローンを作成できます。すべてのクリーンとスマッジが自動的に構成されます」。
(新しいコンピュータに template-dir が事前に設定されている場合)

于 2016-06-15T07:07:11.460 に答える