我正在使用 ubuntu 12.04 TLS,其中在特定目录中有一个 git 存储库,我正在尝试对存储库进行计划备份并将其放在可以邮寄的特定目录中。
在此过程中,我通过谷歌搜索找到了特定目录中的所有 git 存储库,我发现了以下命令
find /home/mysys/D/ -name .git -type d -prune
但它包含路径
/home/mysys/D/测试/.git
它列出了目录中关联的所有 git 文件,并且它正在运行,但我需要执行 git bundle create directoryname.bundle --all 以使其更加自动化,我尝试了以下操作
find /home/mysys/D/ -name .git -type d -prune -exec git bundle create test.bundle --all {} \;
上述 bash 脚本返回
fatal: Invalid gitfile format: .git
如何做到这一点才能使其正常运行。
提前致谢。
答案1
你想成为在git bundle
执行时 git 控制的目录,因此使用find ... -execdir ... \;
find /home/mysys/D/ -type d -name .git -prune -execdir git bundle create backup.bundle --all \;
这将在所有这些目录中创建一个 backup.bundle。从那里你可以移动它们,或者用更多的脚本来处理它们。但捆绑方面的事情已经处理好了。