我想对现有的Git存储库使用LFS并跟踪*.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"
我应该像在上面一样在导入存储库之前跟踪文件,还是应该在之后进行?有关系吗?
答案 0 :(得分:1)
在这两种方法中,导入存储库似乎都会自动打开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
之前,这会导致历史记录中的.gitattributes
版本的 not 没有启用LFS跟踪。如果确实决定手动添加.gitattributes
,则应在提交文件之前执行git lfs track…
,以便在出现该文件的所有提交中都启用跟踪。
所以最好的方法似乎是:
git lfs migrate…
。.gitattributes
文件(如果您还没有.gitattributes
文件)。总而言之,git lfs migrate import …
似乎包含git lfs track …
的功能;似乎没有必要在调用之前或之后单独调用后者。