AWS CodeCommit是否支持Git LFS?如何完成配置?
AWS CodeCommit对Git LFS的支持结论
AWS CodeCommit 原生支持Git LFS,不存在需要用户自行在服务端配置LFS存储目录的要求。和你当前使用的自建GitLab需要手动指定LFS存储路径、自行维护存储资源不同,CodeCommit作为全托管代码服务,LFS对象的存储、多可用区冗余、存储维护全部由AWS侧自动完成,用户不需要在服务端做任何存储相关配置。
目前CodeCommit对Git LFS的默认配额为:单文件最大支持5GB,单仓库LFS总存储量、LFS请求次数和对应区域的CodeCommit服务配额保持一致,权限和普通Git仓库权限打通,不需要单独配置LFS专属访问策略。
对接配置操作步骤
所有配置操作都在本地Git环境完成,服务端不需要做任何前置开启操作:
- 第一步:本地安装Git LFS客户端,安装完成后执行一次全局初始化,配置Git全局LFS过滤规则,该操作仅需执行一次,后续所有本地仓库可复用配置:
git lfs install - 第二步:关联目标CodeCommit仓库。如果是存量GitLab仓库迁移,先将本地仓库的远程origin地址修改为目标CodeCommit仓库地址,按照普通CodeCommit仓库的认证方式配置凭证即可——支持AWS CLI本地凭证、IAM用户HTTPS凭证、SSH密钥三种认证方式,LFS传输会自动复用Git的认证信息,不需要单独配置LFS专属账号密码。
- 第三步:配置LFS追踪规则。进入本地仓库根目录,根据项目实际需要指定要交给LFS托管的文件类型或路径,例如要追踪所有psd设计文件、mp4视频文件、zip压缩包,执行以下命令:
命令执行后会在仓库根目录生成git lfs track "*.psd" "*.mp4" "*.zip".gitattributes文件,该文件必须提交到仓库,否则其他协作者拉取代码时无法自动识别LFS规则,会直接拉取大文件本体。 - 第四步(存量迁移场景可选):历史大文件转LFS。如果原有GitLab仓库的历史提交中已经直接提交过符合追踪规则的大文件,没有走LFS存储,可以执行迁移命令改写历史,将历史提交中的对应文件转为LFS对象。注意该操作会重写仓库提交历史,执行前必须和团队所有成员同步,避免出现提交分叉冲突:
git lfs migrate import --include="*.psd,*.mp4,*.zip" --everything - 第五步:推送内容到CodeCommit。所有配置完成后,正常执行
git push命令即可,Git LFS客户端会自动识别追踪的文件,将大文件上传到CodeCommit内置的LFS存储,普通代码文件走常规Git对象传输流程,不需要添加额外的推送参数。
常见配置注意点
- 不需要在CodeCommit控制台手动开启LFS开关,首次向仓库推送LFS对象时服务端会自动启用LFS能力
- 不需要手动配置LFS服务端地址,Git LFS客户端会通过Git协议自动发现对应CodeCommit仓库的LFS端点
- LFS对象的拉取、上传权限和对应CodeCommit仓库的Git操作权限完全一致,只要用户拥有仓库的对应读写权限,就能正常操作LFS文件,不需要单独配置IAM权限策略
内容的提问来源于stack exchange,提问作者Manoj
相关产品推荐
相关产品推荐

