我的主目录中有一个 git repo 来跟踪一些点文件。
一个令人不快的副作用,无论我现在在哪里,它都被认为是~repo的一部分,并且很容易错误地向其中添加文件等。
有可能,只有当这些命令在 中直接调用时,repo 中的 repo~/.git才会监听命令(git add等)~,否则它只是假装不存在,即被not a repository抛出?(例如,如果我调用git add -Ain ~/Documents)
不,这是不可能的。
但是,另一种方法是使用非标准.git目录:
.git/目录重命名为其他名称(例如 :.git-wont-know/或.git-dotfiles/)git --git-dir=~/.git-wont-know ...时要与它进行交互(链接文档)您可以设置别名或包装器以使用此特定 git dir ;您还可以设置GIT_DIR=~/.git-wont-know是否要将其传递给现有脚本。
[更新] 这将关闭“通过查找.git目录来定位存储库的位置”功能。
如果您想从子目录(例如 : from $HOME/.config/)使用此设置调用 git ,您可能还需要指定工作树是您的主目录:
git --git-dir=~/.git-wont-know --work-tree=~ ...
# or using environment variables :
GIT_DIR=~/.git-wont-know
GIT_WORK_TREE=~
Run Code Online (Sandbox Code Playgroud)