好的,所以我偶然发现了一些git-annex 的文档,它们提供了两个命令来实现我想要做的事情:
unannex [路径 ...]
使用它来撤消意外的 git Annex add 命令。您可以随时使用 git Annex unannex 将内容移出附件,即使您已经提交了它。如果您有意附加一个文件并且不再需要它的内容,这不是您应该使用的命令。在这种情况下,你应该使用 git Annex drop 代替,你也可以 git rm 文件。
初始化
使用它来停止使用 git 附件。它将取消附加存储库中的每个文件,并删除所有 git-annex 的其他数据,留下一个 git 存储库以及以前附加的文件。
我开始跑步git annex uninit
,但我的上帝是它很慢。“取消附加”一个文件大约需要 5 分钟。我的文件系统树大约有 200,000 个文件,所以这是不可接受的。
我最终做的实际上非常简单并且运行良好。我使用这些cp -rL
标志来自动复制我的文件树的内容并反转复制副本中的所有符号链接。而且速度非常快:我的整个文件树大约需要 30 秒。唯一的问题是文件权限没有从我的原始状态保留,所以我需要运行一些命令chmod
来chcon
修复权限。
第二种方法对我有用,因为我的架构中没有其他符号链接。如果您的架构中确实有 git-annex 创建的符号链接之外的符号链接,那么我的小快捷方式可能不是您的正确选择,您应该考虑坚持使用git annex uninit
.