我们的开发团队一直在使用 git 进行版本控制,并使用 git-annex 来存储大型二进制文件(数据二进制文件、图像、测试二进制文件等)。虽然我们已经能够设置并使用它,但我们也遇到了一些麻烦。
我们经常执行的一个给我们带来麻烦的常见行为是:
开发人员 1 为新功能添加了一些测试,并使用 git-annex 为测试添加了相应的数据。
git add <test-file>
git annex add <data-file>
git annex copy <data-file> --to=<remote location(we use s3 if that is relevant)>
git commit -m 'Tests with data'
git push
git annex sync
Run Code Online (Sandbox Code Playgroud)工作被审查和合并(我们使用 Github 进行托管并遵循分叉模型,其中所有工作由开发人员在他们自己的分叉上完成并通过拉取请求合并到主存储库中)
开发人员 2 与上游提取/合并并尝试在他的机器上运行测试。
git fetch upstream
git merge upstream/<branch>
git annex sync
git annex get
Run Code Online (Sandbox Code Playgroud)我们经常会发现测试数据要么无法在 git 中跟踪,要么无法从远程位置下载。
在我们的工作流程中使用 git-annex 的好方法是什么?
顺便说一句,还有哪些其他选项可以使这种工作流程更好/更易于管理?