ソース コード (Web アプリケーション) が依存している大きなバイナリ ファイルを処理する方法について意見を求めています。現在、いくつかの代替案を検討中です。
- バイナリ ファイルを手動でコピーします。
- 賛成:よく分かりません。
- 反対意見: 新しいサイトをセットアップしたり、古いサイトを移行したりするときにエラーが発生する可能性が高くなるため、私はこれに強く反対します。また別のハードルが生まれます。
- これらすべてをGitで管理します。
- 利点: 重要なファイルをコピーし忘れる可能性を排除します
- 欠点: リポジトリが肥大化し、コードベースを管理する柔軟性が低下し、チェックアウトやクローンなどにかなりの時間がかかります。
- 個別のリポジトリ。
- 利点: ソースコードのチェックアウト/クローン作成は相変わらず高速で、イメージは独自のリポジトリに適切にアーカイブされます。
- 反対意見:プロジェクトに唯一のGit リポジトリを持つことのシンプルさが失われます。これは、私が考えていなかった他のいくつかのことを確実に導入します。
これに関してあなたの経験や考えは何ですか?
また、複数の Git リポジトリを 1 つのプロジェクトで管理した経験のある方はいらっしゃいますか?
これらのファイルは、これらのファイルを含む PDF を生成するプログラム用の画像です。これらのファイルは頻繁に変更されることはありませんが (数年単位など)、プログラムと非常に関連しています。これらのファイルがないとプログラムは動作しません。
ベストアンサー1
私は発見したgit-annex最近、素晴らしいと思うようになりました。これは、大きなファイルを効率的に管理するために設計されました。私は、写真や音楽などのコレクションにこれを使用しています。git-annex の開発は非常に活発です。ファイルの内容は Git リポジトリから削除できますが、ツリー階層のみが Git によって追跡されます (シンボリックリンク経由)。ただし、ファイルの内容を取得するには、プル/プッシュ後に 2 番目の手順が必要です。例:
$ git annex add mybigfile
$ git commit -m'add mybigfile'
$ git push myremote
$ git annex copy --to myremote mybigfile ## This command copies the actual content to myremote
$ git annex drop mybigfile ## Remove content from local repo
...
$ git annex get mybigfile ## Retrieve the content
## or to specify the remote from which to get:
$ git annex copy --from myremote mybigfile
利用できるコマンドは多数あり、ウェブサイトには優れたドキュメントがあります。パッケージは以下から入手できます。デビアン。