这就是我的想法:
首先,我创建了一个~/repositories/configurations/
用于存放 git 存储库的目录。导航到此目录后,我git init
照常运行。
接下来,我创建了一个.gitignore
配置为忽略除白名单上的文件之外的所有文件的文件。(请注意,您可以在提交之前的过程中稍后执行此操作,但如果您git status
在设置之前运行,.gitignore
您会看到很多未跟踪的文件)。
# ignore everything
*
# except these whitelisted files:
!.gitignore
!.pryrc
!.zshrc
!.bashrc
!.bash_profile
!.bash_login
然后将 git 存储库指向不同的工作目录:
git config core.worktree "/User/username"
现在运行git status
显示:
Untracked files:
(use "git add <file>..." to include in what will be committed)
../../.bash_login
../../.bash_profile
../../.bashrc
../../.gitignore
../../.pryrc
../../.zshrc
从这里,我们git add ~/.bash_profile ~/.bashrc ~/.pryrc ~/.zshrc
和承诺。设置并推送到远程存储库是标准配置。
一个注释 - 我决定我想要一个本地 README.md 文件来记录目录的用途以及它的配置方式等。我不希望这个文件在我的主文件夹中,因为它会脱离上下文。创建自述文件后,我必须使用-f
标志将其添加到存储库:
git add -f README.md
.
我试图将它添加到.gitignore
白名单中,但无法说服 git 找到具有不同路径的文件,例如!~/repositories/configurations/README.md
等等。无论我如何尝试指定路径,git 都没有看到该文件。不过用力添加后,它工作正常。比我聪明的人可能会建议如何做到这一点。
这个过程就像一个魅力。我现在有一个工作存储库来跟踪点文件更改并安全地远程存储它们。