我想用LFS为现有的Git仓库和跟踪*.foo
文件,转换文件的历史了。我想我可以这样做:
git lfs track "*.foo"
# changed `.gitattributes` and all `.foo` files
commit -a -m "Started tracking foo files."
git lfs migrate import --everything --include="*.foo"
我应该在导入库之前跟踪的文件,如我上面做,或者我应该这样做以后?有关系吗?
在试图左右逢源,看来导入库将打开LFS自动跟踪,所以没有必要单独使用git lfs track
。
git lfs migrate import --everything --include="*.foo"
事实上,如果你打开第一追随,那么你将有一个额外的承诺,其中的文件类型添加到.gitattributes
。事实证明,git lfs migrate import
实际上会用正确的跟踪信息作为历史上的第一次提交添加.gitattributes
。如果你没有一个.gitattributes
文件,一个将过去被添加。
同样,如果你没有一个.gitattributes
(假设你转换从Subversion版本库的Git仓库,例如),那么如果你先添加自己的.gitattributes
到仓库,做git lfs track
之前提交,这将导致一个版本在不具备LFS跟踪历史.gitattributes
的开启。如果你决定手动添加.gitattributes
,你应该在提交的文件,以便它会跟踪所有在它出现的提交开启之前执行git lfs track…
。
所以,最好的办法似乎是:
git lfs migrate…
。.gitattributes
文件(如果你没有一个.gitattributes
文件的话)。综上所述,git lfs migrate import …
似乎包括git lfs track …
功能;似乎没有必要之前或之后单独调用后者。