【发布时间】:2010-12-29 08:26:12
【问题描述】:
我们想使用 git 来维护系统配置。因为有时配置数据存在于 /etc 之外,我们已经开始在我们的系统上做这样的事情:
# cd /
# git init
# git add etc
# git add some/other/path
# git commit -m 'initial import'
等等。这在一定程度上有效。只要您的 cwd == '/',git 就会正常运行。但是,例如,如果您尝试从子目录中运行 git:
cd /etc
git status
你得到了垃圾。在我们的例子中,数千行“已删除:”列表中的文件显然仍然存在。这种行为似乎是在 / 中运行 git 所独有的;在其他任何地方做同样的事情都很好。
我可以像这样“修复”这种行为:
GIT_WORK_TREE=/ git status
嘿,一切都按照 Linus 的预期进行……但这很痛苦。我不想单方面在环境中设置它(因为这会与在其他存储库中使用 git 冲突),并且我想避免使用包装脚本。我还有其他选择吗?
【问题讨论】:
-
注意:Git 2.4.1+ 将解决这个问题(2015 年第二季度)。见my answer below。
标签: git version-control configuration system