web-dev-qa-db-ja.com

gitで$ HOMEを追跡する方法

$ HOMEディレクトリをgitで追跡したいと思います。他のサブディレクトリ($ HOME/projects/repo_1など)に他の多くのgitリポジトリがありますが、すでに追跡されているため、追跡する必要はありません。

git-home-history を見つけましたが、アーカイブから、プロジェクトはもはや積極的に開発されていないようです。

どのようなアプローチをお勧めしますか? ghhは十分に成熟していますか?

私はMacを使用していますが、クロスプラットフォームソリューションにも興味があります。

ありがとう

ps:調べましたが、重複は見つかりませんでした。これがすでに議論されている場合は、それらを指摘してください。

10
Francesco

私はこれをしばらくの間gitを使ってやっています。ホームディレクトリ全体を追跡するのではなく、積極的に変更している部分だけを追跡します。これには、たくさんの小さなスクリプトが含まれている私のhome/binディレクトリ、私の.vimディレクトリ、および他のディレクトリにあるいくつかの大きなプロジェクトが含まれます。また、ターミナルとオープンボックス、およびその他のさまざまなアプリの構成がリポジトリに追加されています。

これらすべてに同じ権限が設定されており、元のタイムスタンプは気にしないため、これで十分に機能します。 git filter-branchを使用してその一部をサブモジュールに分割することを計画しているところまで来ています。異なるサブディレクトリ内のファイル間に相互依存関係があるため、これは少し注意が必要です(たとえば、一部の.vimスクリプトが私のbinディレクトリからスクリプトを呼び出す場合があります...あまり良い例ではありませんが、うまくいけば要点がわかります)。

これ以上包括的な解決策は見つかりませんでしたが、git-home-historyを含め、実際には調べていません。ホームディレクトリ全体をリビジョン管理下に置くのはかなり複雑で、多くの変数があるようです。たとえば、Firefoxプロファイルをリビジョン管理下に置くと、大量のバイナリ差分が積み重なってしまうことになります。また、sshキーのように、複製されるよりも失われることが多いものもあります。

パーミッションを追跡したい場合(gitがすでに追跡している実行可能ビット以外)、明らかにそれを行う hook があります。 このserverfaultスレッド で言及されています。

5
intuited

ホームディレクトリでgitを使用してから、作業している外部gitプロジェクトにgitサブモジュールまたはrevise-treeを使用できます。

0
edgester