web-dev-qa-db-ja.com

一元化されたgitリポジトリにドットファイルを適切に保存する方法

すべてのドットファイル(.profile、.gitconfigなど)を中央のgitリポジトリに配置して、変更をより簡単に追跡できるようにします。私はこれを行いましたが、〜/で実際のものと同期させて適切に処理する方法を知りたいです。 lnを使用して2つをハードリンクできると思いましたが、これは期待どおりに機能していないようです。つまり、一方のファイルを編集しても、もう一方は変更されません。 lnコマンドを誤用したか、ハードリンクの仕組みを誤解している可能性があります。

人々は通常どのようにこれを行いますか? GitHubから判断すると、これは非常に人気のあることなので、誰かが思いついたシームレスな方法が確かにあります。

ちなみに、私はMac OS X10.6を使用しています。

4
asmeurer

多くのOSXプログラム、 TextEditなど は、ハードリンクを切断する方法でファイルを保存します。

少なくともLinuxでは、シンボリックリンクは通常この目的で使用されます。

$ ln -s ~/dotfiles/bashrc ~/.bashrc
4
user1686

Gitを介して(および複数のマシン間で)ドットファイルを管理するには、 vcsh および myrepos を強くお勧めします。

Richard Hartmannのvcshを使用すると、多数のシンボリックリンクを設定しなくても、Git内のすべてのドットファイルを管理できます。重要なのは、任意の数のGitリポジトリが互いに邪魔することなくホームディレクトリに並行して共存できることです。さらに、vcshはmyreposを念頭に置いて設計されました。このツールを使用すると、すべてのバージョン管理リポジトリを一度に管理できます。特に、mrは1回の呼び出しですべてのリポジトリを更新できます。できるだけ少ない労力ですべてのドットファイルを新しいマシンにセットアップするのに理想的です。

これらのツールをセットアップして、 ドットファイルをすばやく簡単に管理できるようにする 方法を説明するブログエントリを公開しました。多分これはあなたのために役立ちます。

2
Martin

私はこれを処理するツールの構築を支援してきました freshshell 。これはホームシックに似ていますが、GitHubリポジトリからファイルをプルできる機能が追加されています。つまり、他の人の構成の一部を自分の構成と一緒に取得できるという考え方です。

freshは、シェル構成(エイリアス、関数など)を他のユーザーから独自の構成ファイルに取り込むためのツールです。 ackrcやgitconfigなどのファイルもサポートしています。ドットファイルのBundlerと考えてください。

2
twe4ked

Rubygemがあります: homesick これはすべてを解決します!すぐに使用できるgithubをサポートし、すべてをシンボリックリンクします。

protip:ドットファイルに変更を追加する場合でも、別のディレクトリにリポジトリのクローンを作成する必要があります。プッシュから変更を加えます。その後、ホームシックでそれらを引っ張る。

vIMを使用している場合は追加ですか?:

pathogen を使用します。これは、gitでドットファイルを管理するときに非常にうまく機能するためです。プラグインはサブモジュールとして追加でき、簡単にロードできます。

1
stefano