[解決済み] Git による大規模なバイナリファイルの管理
2022-03-18 20:16:16
質問
私のソースコード(Webアプリケーション)が依存している大きなバイナリファイルをどのように扱うかについて意見を求めています。現在、いくつかの選択肢について議論しています。
-
バイナリファイルを手作業でコピーする。
- Pro: よくわからない。
- 反対:新しいサイトの設定/古いサイトの移行の際にエラーが発生する可能性が高くなるので、強く反対します。また新たなハードルができてしまう。
-
で管理します。
ギット
.
- Pro: 重要なファイルのコピーを「忘れる」可能性をなくします。
- 反対:リポジトリが肥大化し、コードベース管理の柔軟性が低下、チェックアウトやクローンなどにかなりの時間がかかる。
-
リポジトリを分離する。
- Pro: ソースコードのチェックアウト/クローン作成はこれまで通り高速で、イメージは独自のリポジトリに適切にアーカイブされます。
- コントラ を持つことの単純さが失われる。 唯一無二の プロジェクト上のGitリポジトリ。きっと、私が考えてもみなかったようなことが他にも起こるのでしょう。
この件に関して、あなたの経験や考えを教えてください。
また 複数の Git リポジトリを 1 つのプロジェクトで管理した経験をお持ちの方はいらっしゃいますか?
そのファイルは、そのファイルを含むPDFを生成するプログラムのための画像です。ファイルはあまり頻繁に(数年のように)変更されませんが、プログラムに非常に関連しています。このプログラムは、このファイルがないと動きません。
解決方法は?
もし、そのファイルがないとプログラムが動かないのであれば、それらを別のレポに分割するのは悪い考えだと思われます。 私たちは大規模なテストスイートを別のリポジトリに分割していますが、それはまさに "補助的なファイルです。
しかし、ファイルを別のレポで管理し、その上で
git-submodule
を使えば、まともな方法でプロジェクトに取り込むことができます。 つまり、すべてのソースの完全な履歴は残りますが、私の理解では、images サブモジュールの関連するリビジョンを1つだけ持つことになります。 その
git-submodule
を使えば、コードの正しいバージョンを画像の正しいバージョンと一致させることができるはずです。
以下は、良い サブモジュールの紹介 をGit Bookからダウンロードしました。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git で、ステージされていない変更を破棄するにはどうしたらいいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】Git サブモジュール head 'reference is not a tree' エラー
-
[解決済み】マージが終了していません(MERGE_HEADは存在します)。
-
[解決済み] 複数のコミットをチェリーピックする方法
-
[解決済み] SourceTree error:1407742E:SSLルーチン:SSL23_GET_SERVER_HELLO:tlsv1警告プロトコルバージョン
-
[解決済み] git status に fatal: bad object HEAD と表示される。
-
[解決済み] Git リポジトリのサブディレクトリのみをクローンする方法を教えてください。
-
[解決済み] リモートリポジトリに存在しないローカルのgitタグを削除する
-
[解決済み] 1つのブランチだけをクローンする[複製]。
-
[解決済み】git pullでサブモジュールを自動更新させる方法はありますか?