現在のワークフローの一部として、特定のgit reposを作成時にユーザーのホームディレクトリに事前クローンします。しかし、これらのリポジトリが増加し、ユーザ数が増加するにつれて、ディスク使用量はますます問題になっています。特定のコミット時に複製を実行する
私は2つの面でこれを攻撃しています:なし変更されたファイルと
- 既存のレポは非常に誇らしげ初期状態に戻り、それらを
git reset --hard $first_commit
を取得します。ログイン時の通常のgit pull
は、いつものように最新の状態になります。 - 新しいユーザーは
$initial commit
で始まるreposを取得し、git pull
で最新の状態になることができます。
私は#1の解決策を考え出し、レビューのために提出しましたが、多くのIOオーバーヘッドを発生させない#2の解決策を考え出すのに問題があります。
簡単な解決策は、単に次のようになります。
git clone /opt/git/app.git /home/user/app && \
git -C /home/user/app reset --hard $first_commit
ただし、のみ削除する完全な作業ツリーをチェックアウトし、それが新しいアプリケーションサーバーが沿って作成された正当な関心事である余分なIOの多くを負担しますすべての必要なユーザーと
私はthis answerに基づいていますが、結果のレポが正しくorigin/master
からプルするように設定されていない次のことを試してみた:
git init /home/user/app
git -C /home/user/app remote add origin /opt/git/app.git
git -C /home/user/app fetch origin $first_commit
任意の分岐が何とか全く設定されているようには見えません、 .git/config
には次のものがありません:
[branch "master"]
remote = origin
merge = refs/heads/master
ありがとうございます。上流master
年代設定する
あなたはgitの履歴のいずれかを必要としない場合には、プロジェクトのバイナリを構築し、単純にその仕事をダウンロードするのでしょうか? –
@AndyRay nope。これはちょっとしたジャッキーワークフローを持つマルチ開発環境です。 – Sammitch