命令为了迁移到Git的LFS和跟踪文件时

问题描述 投票:2回答:1

我想用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"

我应该在导入库之前跟踪的文件,如我上面做,或者我应该这样做以后?有关系吗?

git git-lfs
1个回答
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之前提交,这将导致一个版本在不具备LFS跟踪历史.gitattributes的开启。如果你决定手动添加.gitattributes,你应该在提交的文件,以便它会跟踪所有在它出现的提交开启之前执行git lfs track…

所以,最好的办法似乎是:

  1. 你做任何事情之前执行git lfs migrate…
  2. 更新了Git添加额外的文件类型.gitattributes文件(如果你没有一个.gitattributes文件的话)。

综上所述,git lfs migrate import …似乎包括git lfs track …功能;似乎没有必要之前或之后单独调用后者。

© www.soinside.com 2019 - 2024. All rights reserved.