1

当我以前运行 git init 时,我会得到一个如下所示的 .git 文件夹:

.git
|_config
|_description
|_HEAD
|_hooks/
|_index
|_info/
|_logs/
|_objects/
|_refs/

现在, git init 正在生成:

.git
|_HEAD
|_config
|_hooks/
|_index
|_logs/
|_objects/
|_refs/

为什么它不再创造info/了——我错过了一些明显的东西还是真的出了什么问题?有没有一种简单的方法来修复我的 git 设置,以便git init正常/像以前一样工作?

编辑: git 版本 1.7.12.4(Apple Git-37) ——我认为这是安装在带有山狮的 macbook 上的标准。在此期间没有执行任何更新,我唯一能想到的是 eclipse (Juno) 为一个项目选择了一个 git 文件夹——可以想象它可能已经修改了一些设置,但我的 gitconfig 和 git_templates 看起来是一样的。

4

3 回答 3

2

最小的有效 git repo 是

mkdir -p .git/{objects,refs}
echo ref: refs/heads/master > .git/HEAD
git config core.repositoryformatversion 0

任何超出您想要确定的内容,只需添加mkdir -p .git/info到您自己的仪式中即可。

于 2013-09-08T16:49:08.063 回答
1

在我的 git 安装(Debian 包,版本 1.8.1.1)中,git init将创建目录.git/info,但前提是它包含在/usr/share/git-core/templates/. 这是 git init 手册页中描述的模板机制(“模板目录”部分)。

因此,请检查该info目录是否包含在您的模板目录中(可能在多个地方,请查看手册页)。

至于为什么不再自动创建它:这似乎是由您的 git 安装或您的个人配置引起的。来自官方 git 存储库的 Git 将创建此目录。

于 2013-09-08T20:45:32.653 回答
1

原来问题/解决方案非常简单:

我期待我git init从两个模板文件夹中提取(我/usr/share/git-core/templates的和我为自己设置的~/.git_templates引用的那个,以添加我自己的钩子)。$GIT_TEMPLATE_DIR似乎它只会使用一个,所以我只是cp将核心内容转移到我的新内容上,一切都很好。

于 2013-10-25T14:05:22.823 回答