我在笔记本电脑和台式机之间的$ HOME目录中使用git作为备份工具和“漫游配置文件”。
我的问题是在我的$ HOME下我有一个开发目录,其中包含我正在处理的多个git项目。 Git不允许我添加子目录.git文件夹。因此,为了承诺这些项目,我必须将更改推送到我的$ HOME git repo,拉上笔记本电脑(创建它们的地方和.git dir exsits)并提交。
我读过有关子模块的信息,但这并不是我想要的。我只是希望将.git文件夹视为任何旧目录,以便我可以移动它们并备份它们。
有没有人这样做或者想过我会怎么做?
答案 0 :(得分:2)
不要这样做。这是一个坏主意,因为您正在创建版本化存储库的版本化备份。只需通过rsync创建备份(您仍然可以使用git对父版本进行版本化)
答案 1 :(得分:1)
我个人使用git来同步一些像.profile或.vimrc这样的点文件。为了避免像你这样的问题,我的git位于$ HOME / dot中,单个文件在$ HOME中符号链接。
答案 2 :(得分:0)
我建议使用一个脚本,该脚本首先备份您在$ HOME下的每个.git
项目:它将生成一个备份文件(仍在您的$ HOME下)
有关详情,请参阅 git bundle
。
然后,您可以将这些备份(或“捆绑”)文件添加/更新到主git仓库(其中包含除.git项目之外的所有$HOME
)
最后,您可以使用相同的Git备份技术(git bundle
)将所有$ HOME导出为一个文件。
答案 3 :(得分:0)
过去我使用了gibak,一个Git备份工具。除了处理文件属性外,它还会处理主目录中的Git存储库。
虽然有一个免责声明。我已经使用了一段时间,但有时备份变得腐败。我没有对此进行过调查,但我怀疑这与运行应用程序不断将数据写入主目录这一事实有关。在某些时候,哈希不匹配,你必须做一些聪明的事情才能修复(或开始一个新的备份)。
至少试一试,它可能适合你。我提到的问题也可能是由Git引起的。自从我在1.5年前尝试过这个问题以来,它可能会在此期间得到解决。