我们有一个价值高、破坏成本高的回购。
它还有一些大的XML文件,当使用Web应用程序进行合并和git日志历史记录时,这些文件会导致重大问题。此外,这可能会使我们的CI/CD效率低下。换句话说。。。促使人们转向git-lfs的常规事物。
我们要谨慎行事。一次一个文件。
我看到了类似于下面列出的方法:
cp *.xml ~/tmp
git rm *.xml
git commit
git lfs track *.xml
git add .gitattributes
git commit; git push
在新目录中:
git clone --mirror $remote; cd repo
bfg --delete-files '*.xml'
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push
返回src:
mv repo repo.bloated
git clone $remote; cd repo
cp ~/tmp/*.xml .
git add *.xml # (it now puts them in lfs)
git commit; git push
我怎么能做一些类似的事情,但只是从一个大的xml文件开始,以减轻这个过渡过程中的风险。我们更喜欢与维护该文件的开发人员保持轻松联系,隔离更改并在此处爬网。更改100个文件可能会阻碍开发人员的工作,而且成本高昂。
在上面的例子中,我们只是将*
更改为特定的文件名吗?
如果有人有类似的担忧,我们已经对此进行了实验,我很高兴地说,我们已经能够安全、谨慎地做到这一点。
逐渐过渡到git lfs
是可行的,要逐个文件进行尝试,您可以用上面片段中的特定文件替换*
,并一次执行一个文件。
以后你可以随心所欲,使用bfg
等
如果你绝对确定你想这样做来试用git lfs
,你可以这样做。我们在回购中这样做是为了在更广泛地采用之前更熟悉它,它运行得很好。