Git - 不听嵌套目录中的命令

Git - do not listen to commands in nested dirs

我的主目录中有一个 git 存储库来跟踪一些点文件。

一个令人不快的副作用,无论我现在在哪里,它都被认为是 ~ 存储库的一部分,并且很容易错误地向其中添加文件等。

有可能 ~/.git 中的 repo 仅在 ~ 中直接调用这些命令时才监听命令(git add 等),否则它只是假装不存在,即 not a repository 被抛出? (例如,如果我在 ~/Documents 中调用 git add -A

不,这不可能。

但是,另一种方法可以是使用非标准 .git 目录:

  • 将您的 .git/ 目录重命名为其他名称(例如:.git-wont-know/.git-dotfiles/
  • 当您想与其互动时使用 git --git-dir=~/.git-wont-know ... (link to docs)

您可以设置一个别名或包装器来使用这个特定的 git 目录;如果您想将其传递给现有脚本,您还可以设置 GIT_DIR=~/.git-wont-know


[更新] 这将关闭“通过查找 .git 目录找到存储库所在的位置”功能。

如果您想使用此设置从子目录调用 git(例如:来自 $HOME/.config/),您可能还需要指定工作树是您的主目录:

git --git-dir=~/.git-wont-know --work-tree=~ ...

# or using environment variables :
GIT_DIR=~/.git-wont-know
GIT_WORK_TREE=~