2011-02-10 15 views
4

ホームディレクトリの多くのファイルをgitの下に置いています。重要なドットファイル、私の論文など

私は特定のファイルをgithub(例えば、私のemacsの設定)にプッシュして共有したいと思っています。

明らかに、私はレポ全体をプッシュしたくありません。 submodules行く道はありますか?

ここでは、ディレクトリ~/github/emacsrsyncの選択ファイルを作成し、そのディレクトリの下にサブモジュールを追加して、githubをポイントしてプッシュします。

これは良い考えですか、それとも良い方法がありますか?

(私は私の地元のGitのレポはいえ、このようなものにまで混乱を取得するためにすべてのファイルを保存する必要はありません。)

答えて

0

あなたはディレクトリ~/github/emacsを作成し、そこに実際のファイルに対してhardlinksを置くことができます。

6

githubにもドットファイル(およびその他の設定)が保存されています。私のアプローチは、これらのファイルをすべてレポの中に入れ、レーキタスクを使用してその場所にシンボリックリンクすることです。これは、あなたの実際のホームディレクトリがgitリポジトリ内にないという利点があります。これは、おそらくメンテナンスの面倒になり、ドットファイルやその他のものの再利用性を妨げるため、いつでもどこでもサブモジュールを処理する必要はありません。インスピレーションのために、私のドットファイルリポジトリはここにあります:https://github.com/meineerde/dotfiles

一般的にもっと小さなgit reposを使うことをお勧めします。また、リポジトリ構造(特にサブモジュール)を簡単に保守してメンテナンスを容易にするようにしてください。あなたのものを並べて、新しいプロジェクトごとに新しいgit repoを作成するだけです。

リンクが特定のファイルシステム操作によって簡単に壊れる可能性があるので、ハードリンク(Martinho Fernandesの提案)を使用しないことをお勧めします。ハードリンクがあることは本当に明白ではありません。

+0

非常にクールです。そして、Ruby以外のUnixの馬鹿を使っている人は、すでに十分なツールを頭に入れて、脳のオーバーフローを引き起こさずにミックスに追加できるツールを「レーキ」としていますか?あなたのRakefileは十分にシンプルなようですが、隠された複雑さが待っていますか?シンボリックリンクの単純なリストを超えて何かを管理していますか? – ScoBe

+0

レーキはシンプルなルビーの作りです。本当に複雑なものはありません。どこでもrubyを使用する場合は、rakeを使用します。しかし、あなたがする必要がある場合は、レーキタスクを簡単にシェルスクリプト、メークファイル、あるいはperlスクリプトに変換することができます。これは基本的に 'ln -sf'呼び出しのラッパーです。 –

+0

私もこれを行いますが、リポジトリのbashスクリプトを使ってインストールを行います。また、私は別々の小さなリポジトリを使います。一つはシェルのもの、もう一つはvimのものです。それはうまくいきますし、スクリプトは他の関連する設定を行う良い場所を提供します。 – ergosys

0

私は、私のドットファイルgitディレクトリにシンボリックリンクを使用するのは好きではありません。私は内部の.gitディレクトリとgitエイリアスを使用するように切り替えました。ここに私の書き直しはversioning dotfiles with gitです。

関連する問題