質問: 〜をソース管理下に置くためのヒント 多くの設定ファイル(.gitconfig、.gitignore、.emacsなど)がそこにあり、マシン間で持ち運びたいので、ホームディレクトリ(〜)をソース管理(この場合はgit)の下に置きたいです。それらをgitに置くと、それらを取得するのに最適です。私のメインマシンはmacbookで、os xのセットアップ方法で、無視したいフォルダーがたくさんあります(ドキュメント、ダウンロード、.ssh)。すでにgit(.emacs.d)を使用しているフォルダーもあります。私の考えは、これらすべてのディレクトリを.gitignoreファイルに追加することでしたが、それは一種の面倒で、予期しない結果をもたらす可能性があります。次に考えたいのは、保存したいファイルを定期的にホームのフォルダにコピーしてから、そのフォルダをコミットすることでした。それに関する問題は、コミットする前にそれらを移動することを覚えておかなければならないことです。これを行うきれいな方法はありますか?
回答: gitの下に$homeがあります。私の.gitignoreファイルの最初の行は/* 残りは、!修飾子を使用して無視しないパターンです。この最初の行は、デフォルトでは、ホームディレクトリ内のすべてのファイルを無視することを意味します。バージョン管理したいファイルは、次のように.gitignoreに入ります。!/.gitignore !/.profile [...] 私が持っているよりトリッキーなパターンは:!/.ssh /.ssh/* !/.ssh/config つまり、バージョン.ssh/configのみを使用したい-.ssh内のキーやその他のファイルをgitに入れたくない。上記は私がそれを達成する方法です。編集:すべてのパスの先頭にスラッシュを追加しました。これにより、無視パターンはどこでもではなく、リポジトリ($ home)の先頭から一致します。たとえば、!lib/がパターンであり(libディレクトリ内のすべてを無視しないでください)、ファイル.gitignoreを追加した場合、以前はパターン(!.gitignore)がそれに一致していました。先頭のスラッシュ(!/.gitignore)を使用すると、ホームディレクトリの.gitignoreのみに一致し、サブディレクトリには一致しません。これが無視リストと実際的な違いを生むようなケースは見たことがありませんが、技術的にはより正確なようです。