### Git 上传大文件 在使用Git管理代码版本的过程中,我们常常会遇到一些特殊情况,比如需要上传较大的文件。本文将详细介绍在Mac上使用Git上传大文件的方法与技巧,并提供具体的步骤指南。 #### 遇到的问题 当你尝试通过Git上传大文件时,可能会遇到以下错误信息: ```bash remote:error: GH001: Large files detected. remote:error: Trace: 7b7de6b9372ee392e0f3961b05ea6f33 remote:error: See http://git.io/iEPt8g for more information. remote:error: File *.framework/Versions/A/* is 207.25MB; this exceeds GitHub's file size limit of 100.00MB ``` 这些错误信息表明,你试图上传的文件超过了GitHub的大小限制。GitHub对单个文件的最大大小限制为100MB,超过这个限制的文件无法直接通过Git上传。 #### 解决方案 针对这一问题,目前有两种主要的解决方案:一是删除或排除大文件,二是使用Git LFS (Git Large File Storage)。 ##### 1. 删除大于100M的文件,不上传大文件 如果你确定不需要将大文件存储在版本控制系统中,可以采取以下步骤来删除或排除它们: - **删除磁盘缓存** 使用命令 `git rm --cached <filename>` 或 `git rm -r --cached <directory>` 来删除文件的缓存。 - **从Commit记录中移除** 如果文件已经被提交到了版本库中,可以使用命令 `git commit --amend --no-edit --reset-author` 来撤销最后一次提交,并使用 `git checkout <commit> -- <filename>` 恢复特定版本的文件。 - **推送至远程服务器** 在完成以上操作后,使用 `git push origin master` (如果是第一次推送) 或 `git push` 将更改推送到远程服务器。 ##### 2. 使用Git LFS突破大文件上传限制 如果你需要将大文件纳入版本控制,推荐使用Git LFS。Git LFS 是一个 Git 扩展,用于替代 Git 处理大型文件的方式,它只存储文件元数据,而将实际文件内容保存在远程服务器上。 - **安装Git LFS** 对于Mac用户,推荐使用Homebrew安装: ```bash brew install git-lfs ``` - **初始化Git LFS** 打开终端,切换到包含大文件的Git仓库目录,运行命令 `git lfs install` 来初始化Git LFS。 - **追踪单个文件** 使用命令 `git lfs track "<filename>"` 来指定需要使用Git LFS管理的大文件。例如,如果你想追踪所有的PSD文件,可以执行 `git lfs track "*.psd"`。 - **添加并提交追踪文件** 首先需要将`.gitattributes` 文件添加到版本库中: ```bash git add .gitattributes git commit -m "track *.psd files using Git LFS" ``` 然后提交其他文件: ```bash git add . git commit -m "submit other files" ``` - **验证追踪状态** 运行 `git lfs ls-files` 来检查文件是否已被正确追踪。 - **推送至远程仓库** 最后一步是将文件推送到远程仓库: ```bash git push origin master ``` #### 注意事项 - **上传成功后的拉取问题** 如果在上传大文件后,拉取工程时遇到错误,例如文件中出现了类似 `version https://git-lfs.github.com/spec/v1` 的信息,这可能是由于某些文件追踪失败导致的。解决方法是删除远程仓库中的对应文件,然后按照上述步骤重新进行。 - **追踪framework文件** 对于超过100M的framework文件,可以使用命令 `git lfs track "*.framework/Versions/A/*"` 来追踪。这是因为macOS系统会将framework视为一个文件夹而不是单一文件。 通过以上步骤,你可以有效地管理和上传大文件,避免因文件大小限制而导致的问题。Git LFS 的使用大大提升了开发者处理大文件的能力,使得项目版本控制更加灵活高效。












remote: error: GH001: Large files detected.
remote: error: Trace: 7b7de6b9372ee392e0f3961b05ea6f33
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File *.framework/Versions/A/* is 207.25 MB; this exceeds GitHub's file size limit of 100.00 MB
```
在使用Git时,你是否遇到过这种问题?遇到这种问题后又该如何操作呢?
目前有两种方法:
###### 1. 删除大于100M的文件,不上传大文件
1-1. 删除磁盘缓存
`git rm --cached`或`git rm -r --cached`
1-2. 将大文件从commit记录中移除且以后commit都将不会再将其commit
`git commit --amend -CHEAD`
1-3. 推送至远程服务器
`git push origin master`(第一次推送时命令)或`git push`
###### 2. 突破大文件上传限制,使用[git-lfs(Git Large File Storage)](https://github.com/RiberWang/git-lfs)([原地址](https://github.com))

2-1. 安装,我是用的是Macbook Pro,所以选择macOS用户安装方式 [Homebrew](https://brew.sh/) 安装
`brew install git-lfs`
2-2. 打开终端,cd到git仓库路径,初始化lfs
`git lfs install`
2-3. 追踪单个文件
`git lfs track`
eg:`git lfs track "*.psd"`
2-4. 添加lfs追踪文件,提交仓库(此处一定要先提交追踪文件到仓库,在提交其他文件)
`git add .gitattributes`
`git commit -m "track *.psd files using Git LFS"`
`git add .`
`git commit -m "submit other files"`


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- plc层电梯控制设计方案.doc
- 短肢剪力墙结构分析设计全攻略.docx
- 电气工程及自动化现状与未来发展趋势分析.docx
- 第七章-深基坑降水.ppt
- 物联网医院市场发展趋势分析-新冠肺炎来势凶猛医院面临重重压力互联网.docx
- ±以下结构工程施工程序.doc
- 围堰示意图-Microsoft-Word-文档.doc
- 剪力墙结构住宅楼项目冬季工程施工方案.doc
- 高三-家长会-课件.ppt
- 工程质量检查实用手册基础机房篇》V2.0版.ppt
- 【全国】园林工程施工进度控制.ppt
- 互联网+背景下农产品营销策略.docx
- 软件项目交付清单.doc
- 第2章-孟德尔式遗传分析.ppt
- 2012年9月全国计算机等级考试三级笔试含答案(word).doc
- 球形储罐安装工程施工组织设计.doc


