我想在存储库中包含.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存储库可能更方便,允许我在项目期间不使用大量磁盘空间拍摄更多快照。
感谢您阅读所有这些以及您希望提供的任何帮助