ここでEli Barzilayが提案した方法で、ドットファイルをリポジトリに配置しました。
そこで、最終的に両方の長所を活かす解決策を見つけました。リポジトリをサブディレクトリに配置し、シンボリック リンクの代わりに、「core.worktree」をホーム ディレクトリにする構成オプションを追加します。ホーム ディレクトリにいるときは、git リポジトリにいるわけではなく (したがって、最初の問題はなくなりました)、2 番目のケースのように脆弱なシンボリック リンクを処理する必要はありません。バージョン管理したくないパスを除外するというちょっとした手間がかかりますが (たとえば、「.git/info/exclude」トリックの「*」)、これは新しいことではありません。
私の .git/info/exclude は次のようになります。
*
.*.swp
*~
\#*#
.DS_Store
最初の行の*
はすべてのファイルを正常に無視するので、明示的にgit add -f
. ただし、これには、無視したいファイルがすり抜けてしまうという副作用があります。
を使用していても、特定のファイルを本当に無視するように git に指示する方法はありますadd -f
か?