2

私は自分の個人的な小さなサイトを git を介して管理しています。これは、そうすることの実際の利点というよりも、学習体験としてのものです。私のワークフローは一般的に次のとおりです。

  1. デスクトップで変更を加える
  2. ブラウザで file:///path/to/folder をテストし、必要に応じて追加/コミット/変更します
  3. 満足したら、EC2 インスタンスに設定したオリジンにプッシュします。ここで、ポストコミット フックが作業ツリーを更新します。

MathJaxを使用して自分のサイトに数式を表示したいのですが、MathJax フォルダーは 128Mb で、プロジェクトの残りの部分は全部で 1Mb しかありません。さらに、MathJax/ には多くの小さなファイルが含まれており、(作業ツリーに入ってから) git add や git status などの操作の実行が非常に遅くなっています。

MathJax/ を追加する前にコミットして、MathJax フォルダーを git リポジトリ ( .gitignore git reset --hard) から除外し、MathJax を定期的に変更しないという理由で手動で Web サーバーに追加し、レポに追加すると、それ以外の場合は高速な操作にかなりのオーバーヘッドが追加されるようです。繰り返しになりますが、これは私のレポが自己完結型のエンティティではないことを意味します。これは概念的に間違っているようです。美味しそうな新しいスクリプトやサービスをダウンロードするときにどれほどイライラするかを知っていますが、その前に 15 の依存関係を探し出さなければなりません。実行されます。

明らかに、この特定のレポに取り組んでいる人は他にいませんが、それでも良い習慣を身につけたいと思っています。このような状況でのベストプラクティスは何ですか? 大きな依存関係をリポジトリに含める必要がありますか? そうでない場合、それらを参照する最良の方法は何ですか - README.md?

4

1 に答える 1

3

git book の引用:

あるプロジェクトで作業しているときに、その中から別のプロジェクトを使用する必要があることがよくあります。おそらく、サードパーティが開発したライブラリか、個別に開発して複数の親プロジェクトで使用しているライブラリです。これらのシナリオでは、共通の問題が発生します。つまり、2 つのプロジェクトを別々のものとして扱いながら、一方を他方から使用できるようにしたいということです。

サブモジュールと呼ばれる git 機能を使用する必要があります。これは、別の git リポジトリ内の git リポジトリです。詳細については、Git ブックまたはman ページを参照してください。

他のオプションは git subtree です (サブツリーのマージと混同しないでください)。git バージョン 1.7.11 以降で使用できます。サブツリーの使用について説明した素敵なブログ投稿: https://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/

于 2013-06-15T06:57:32.880 に答える