git 扩展命令
Git LFS 大文件存储
Section titled “Git LFS 大文件存储”Git LFS 原理
Section titled “Git LFS 原理”Git LFS
通过懒惰地 (lazily
) 下载大文件的相关版本来减少大文件在仓库中的影响。具体来说,大文件是在checkout
的过程中下载的,而不是clone
或fetch
过程中下载的。Git LFS
通过将仓库中的大文件替换为小于 1 KB 的指针文件来做到这一点。在正常使用期间,我们不会看到这些指针文件,因为它们是由Git LFS
自动处理的:- 当我们执行
git add
命令时,Git LFS
用一个指针替换实际内容,并将实际内容存储在本地 LFS 缓存中 (本地缓存位于仓库的.git/lfs/objects
路径下)。 git push
时新增的commit
所引用的所有大文件
都会从本地传输到远程仓库的远程存储。- 当我们
checkout
一个包含Git LFS
指针的 commit 时 (pull
包含了checkout
命令),指针文件将替换为本地Git LFS
缓存中的文件,或者从远端Git LFS
存储区下载。
- 当我们执行
Git LFS 好处
Section titled “Git LFS 好处”- 对于日常使用 Git 的习惯不造成影响。
- 减小本地 Git 缓存所占用的存储空间。
- 加快
git fetch
或git pull
的速度。 - 加快在 commit 之间切换的速度。
Git LFS 使用方式
Section titled “Git LFS 使用方式”scoop install git-lfs
brew install git-lfs
# 检查$ git lfs --version
# 初始化工程,开启$ git lfs install$ git lfs install --local
# 将 .png 文件格式设置为被 Git LFS 管理的格式# 或者直接编辑 .gitattributes$ git lfs track "*.png"# 添加所有需要追踪的文件类型(一次性添加多个扩展名)$ git lfs track "**/*.{psd,ai,tiff,raw,sketch,mp4,mp3,zip,rar,sql,pdf}"
# 确认追踪规则$ git lfs track
# 查看当前 commit 有哪些文件被认为是 LFS 文件$ git lfs ls-files
# 剪除存放于本地的 LFS 文件中那些旧版本的版本, 释放一些硬盘存储空间$ git lfs prune
# 关闭$ git lfs uninstall --local
参考资料:Git LFS 大文件存储
git-extras 常用命令
Section titled “git-extras 常用命令”git-extras 是一组有用的 Git 扩展命令,旨在简化常见的 Git 工作流程和任务。
$ git-extras --version / git-extras -v$ git-extras --help / git-extras -h
$ git-info # 显示当前仓库的详细信息$ git-root # 显示当前仓库的根目录$ git-browse # 在浏览器中打开当前仓库$ git-browse-ci # 在浏览器中打开当前仓库的 CI 页面$ git-setup # 初始化一个新的 Git 仓库并设置远程仓库$ git-summary # 显示当前仓库的摘要信息$ git-count # 统计代码行数$ git-changelog # 显示项目的变更日志$ git-undo # 撤销上一次提交$ git-wip # 保存当前工作进度$ git-unwip # 恢复上一次保存的工作进度
$ git extras --version / git extras -v$ git extras --help / git extras -h
$ git info # 显示当前仓库的详细信息$ git root # 显示当前仓库的根目录$ git browse # 在浏览器中打开当前仓库$ git browse-ci # 在浏览器中打开当前仓库的 CI 页面$ git setup # 初始化一个新的 Git 仓库并设置远程仓库$ git summary # 显示当前仓库的摘要信息$ git count # 统计代码行数$ git changelog # 显示项目的变更日志$ git undo # 撤销上一次提交$ git wip # 保存当前工作进度$ git unwip # 恢复上一次保存的工作进度