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

Sun*_*Sun 4 git dotfiles

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

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

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

LeG*_*GEC 7

不,这是不可能的。

但是,另一种方法是使用非标准.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)

  • 这可能是带有两个破折号的“--git-dir”,对吧?很好的建议,我喜欢。 (2认同)