我们有一个高价值且破坏成本很高的仓库。
它还具有较大的XML文件,当使用Webapp进行合并和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
,则可以执行此操作。我们已经在我们的仓库中做到了这一点,以便在广泛采用之前对其更加熟悉,并且效果很好。