创建最小的git存储库

时间:2012-05-31 15:53:58

标签: git

我将创建大量的小git存储库,我试图避免在hooksinfo等目录中浪费宝贵的空间。

我知道可以使用

指向空模板目录

git-init --template

但有没有办法不被强制指定目录?奇怪的是,--no-template被认为是一个有效的参数,但它只会使用默认模板。

另外,有没有办法阻止git添加.git/logs

2 个答案:

答案 0 :(得分:2)

根据以下大小度量,您只需删除.git / hooks / *文件即可实现一个非常小的.git存储库。幸运的是,删除钩子是完全安全的(没有钩子;没有动作)。

ebg@taiyo(509)$ du -sh foo/.git
 52K    foo/.git
ebg@taiyo(510)$ du -sh foo/.git/*
  4K    foo/.git/HEAD
  0B    foo/.git/branches
  4K    foo/.git/config
  4K    foo/.git/description
 36K   foo/.git/hooks
  4K    foo/.git/info
  0B    foo/.git/objects
  0B    foo/.git/refs
ebg@taiyo(511)$ du -sh foo/.git/hooks/*
  4K    foo/.git/hooks/applypatch-msg.sample
  4K    foo/.git/hooks/commit-msg.sample
  4K    foo/.git/hooks/post-update.sample
  4K    foo/.git/hooks/pre-applypatch.sample
  4K    foo/.git/hooks/pre-commit.sample
  8K    foo/.git/hooks/pre-rebase.sample
  4K    foo/.git/hooks/prepare-commit-msg.sample
  4K    foo/.git/hooks/update.sample

执行rm -f .git/hooks/*.sample后执行git init。将它捆绑在shell函数中。当然,如果你真的想要削减钩子,你可以做sudo rm -f <path-to-git-install>/share/git-core/templates/hooks/*

如果你需要删除更多,你将进入打破git的领域。

答案 1 :(得分:1)

通过“宝贵的空间”,您在谈论从模板中复制的那些14.1KiB示例数据?对不起,但我不认为你这样浪费任何

话虽这么说,你可以创建一个git别名来使用不同的模板初始化一个空的存储库:

git config --global alias.init-minimal 'init --template path/to/template'

除此之外,没有办法指定不同的模板,没有搞乱/usr/share/git-core/templates中的默认值。

此外,您可能无法阻止/logs/被创建,但好消息是它与您的存储库大小有关。因此,如果您没有多次提交,日志文件将保持很小。