详情:
- 我们正在尝试将存储库迁移到Git LFS。
- 我有一个分支将启用Git LFS,我要做的是更新.gitattributes文件,并创建一个跟踪器,它又创建指针来跟踪所有需要成为LFS一部分的文件。
- 现在我需要告诉开发人员,当此功能分支合并到默认/主分支后,他们需要做什么。
需要理解的问题?
- 现在我建议并且通常所发现的是,在更新到主/默认分支之前,即在master/default上进行变基之前,我告诉他们对于现有的所有功能分支都需要执行以下操作,这些功能分支显然在此时还没有进行Git LFS更改。
brew install git-lfs (this will be system-wide)
git lfs install (this will be on the root directory of the repo, for each branch)
- 针对开发人员而言,这将是一个手动步骤,他们希望通过自动化的方式来完成,我认为可能可以通过Git钩子或其他方式来实现,以便他们不必更新每个分支。 我在考虑使用类似以下的管道Bash命令来完成此操作,这可行吗?
for branch in $(git for-each-ref --format='%(refname)' refs/heads/); do
git lfs install "$branch";
done
更新1
- 看起来以上操作会在本地所有分支上执行
git lfs install
,并且一次性完成。 - 但我仍然想知道和了解什么是最佳实践。
.gitattributes
,这将随着rebase
一起来。git lfs install
,否则这些分支将不会有lfs
的.git
钩子。您是想说 - 如果他们在任何一个分支上执行git lfs install
,那么默认情况下所有旧分支都会有lfs .git/hooks
吗? 如果以上答案是肯定的,那就太好了,他们只需执行一次,所有的“旧”分支都将有lfs .git/hooks
。.git
文件夹在分支中存在或“持久存在于所有分支中”真的没有意义,因为.git
文件夹就是存储库本身。存储库包含所有分支的主副本,当您进行检出时,适当的文件会从存储库(即.git
文件夹)复制到工作文件夹(通常是.git
文件夹的父目录)。因此,当您将钩子放入.git/hooks
中,例如使用git lfs install
,无论您在哪个分支上,它们都将同样可访问。 - Soren Bjornstadgit lfs install
需要在所有分支上运行,只需要在任何一个分支上运行一次即可。 - Sandeep Anand