Gits of Gits - 包括存储库中的.git子目录

时间:2015-07-20 11:00:37

标签: git backup snapshot

我想在存储库中包含.git个子目录,但是git似乎有一些内置规则会使它们被忽略或阻止它们被包含在内:

例如,使用如下目录结构:

/a
    /.git
        a-git-1.txt
/b
    /b1
        /.git
            b-b1-git-1.txt

你可以用这个创建:

mkdir "a/.git"
echo file in a/.git > a/.git/a-git-1.txt
mkdir "b/1/.git"
echo file in b/1/.git > b/1/.git/b-b1-git.txt

如果我这样做:

git init
git add .
git status

git status会告诉我没有什么可以提交的;没有添加任何文件。

如果我尝试明确添加文件:

git add a/.git/a-git-1.txt
git add b/1/.git/b-b1-git.txt

我甚至给了一个错误:

error: Invalid path 'a/.git/a-git-1.txt'
error: unable to add a/.git/a-git-1.txt to index
fatal: adding files failed

error: Invalid path 'b/1/.git/b-b1-git.txt'
error: unable to add b/1/.git/b-b1-git.txt to index
fatal: adding files failed

当然git状态仍会告诉我没有添加任何文件。

我正在使用msysgit 1.9.5。

实际上我发现doc technical / index-format明确地说:

  

不允许使用特殊路径组件“。”,“..”和“.git”(不带引号)

所以也许这是有意的,没有解决方法。

但我仍然不确定。

所以我想知道的是:您知道将这些.git目录添加到存储库的方法吗?

顺便说一下,有人知道这个限制是否有意,或者他们只是想避开真正的.git存储库,但是他们错误地包含了子目录?

为什么我要这个?轻松存储存储库的快照会很有用。

为什么我要存储快照?这样做(使用简单的目录副本)经常使我免于git的特性,实际的错误或只是我的错误,如果不是不可能在reflogs或类似的东西中狩猎,那将是非常困难的。通过查看较旧的快照,我可以快速了解发生的情况或找到丢失的分支。

为了制作快照,我目前正在制作普通的目录副本,并在项目结束时将它们全部压缩(在某些时候我可能会开始删除它们),但我认为使用git存储库可能更方便,允许我在项目期间不使用大量磁盘空间拍摄更多快照。

感谢您阅读所有这些以及您希望提供的任何帮助

0 个答案:

没有答案