1,git lfs基本介绍
Git Large File Storage(Git LFS)是一个开源扩展工具,用于管理大型文件(如音频、视频、图像、二进制文件等),这些文件通常不适合直接存储在标准的 Git 仓库中。Git LFS 通过将大文件的指针存储在 Git 仓库中,而将文件的实际内容存储在专用的存储服务器上,从而解决了 Git 仓库因存储大文件而导致的性能问题。
Git LFS 的工作原理
1.1 跟踪文件:
使用 git lfs track 命令指定需要由 Git LFS 管理的文件类型或路径。
Git LFS 会在 .gitattributes 文件中记录这些信息。
1.2 存储指针:
当提交大文件时,Git LFS 会将文件的实际内容存储在专用的 LFS 服务器上。
在 Git 仓库中,Git LFS 会存储一个指向该文件的指针,而不是文件本身。
1.3 自动处理:
当克隆或拉取仓库时,Git LFS 会自动下载大文件的实际内容。
当推送时,Git LFS 会自动上传大文件到 LFS 服务器。
2,git lfs 基本操作
在使用 Git LFS(Large File Storage)时,`git lfs track` 命令用于指定哪些文件应该由 Git LFS 管理。当你运行 `git add` 并提交代码后,Git LFS 会自动处理这些被跟踪的大文件。以下是一些方法来确认大是否文件被正确提交:
2.1. 检查 Git LFS 的日志
Git LFS 提供了一些命令来查看大文件的提交状态。运行以下命令可以查看 LFS 的日志:
git lfs logs last
这个命令会显示最近一次操作的日志,包括大文件的上传状态。
2.2. 检查 Git LFS 的跟踪文件
Git LFS 会在 `.gitattributes` 文件中记录被跟踪的文件模式。你可以检查 `.gitattributes` 文件,确认是否正确添加了需要跟踪的文件模式。例如:
cat .gitattributes
如果看到类似以下内容,说明文件已经被正确跟踪:
*.psd filter=lfs diff=lfs merge=lfs -text
2.3. 检查提交内容
当你运行 `git add` 并提交后,Git LFS 会将大文件的指针存储在 Git 仓库中,而实际文件内容会存储在 LFS 服务器上。你可以通过以下命令查看提交的内容:
git show <commit-hash>
如果大文件被正确处理,你会看到类似以下内容:
version https://git-lfs.github.com/spec/v1
oid sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
size 123456
这表示 Git LFS 已经将文件的元数据存储在 Git 中,而实际文件内容已经被上传到 LFS 服务器。
2.4. 检查 LFS 的状态
运行以下命令可以查看当前仓库中 LFS 的状态:
git lfs status
这个命令会显示哪些文件已经被 LFS 跟踪,以及它们的当前状态。
2.5. 检查远程仓库
如果你已经将推代码送到远程仓库,可以通过以下命令查看远程仓库中的 LFS 对象:
git lfs ls-files
这个命令会列出所有被 LFS 跟踪的文件及其对应的 OID(对象 ID)。
2. 6. 检查提交历史
运行以下命令查看提交历史,确认大文件是否被正确提交:
git log --stat
如果大文件被正确提交,你会在提交历史中看到类似以下内容:
commit <commit-hash>
Author: Your Name <your.email@example.com>
Date: <date>Commit message
.gitattributes | 1 +
1 file changed, 1 insertion(+)
同时,你可以通过 `git show` 查看具体的提交内容。
3,总结
如果你已经运行了 `git lfs track` 并提交了代码,可以通过以下方法确认大文件是否被正确提交:
1. 检查 `.gitattributes` 文件,确认文件模式是否被正确跟踪。
2. 使用 `git show` 查看提交内容,确认是否包含 LFS 指针。
3. 使用 `git lfs status` 和 `git lfs ls-files` 检查 LFS 的状态和文件列表。
4. 查看提交历史,确认大文件是否被正确记录。
如果一切正常,Git LFS 会自动处理大文件的上传和存储,而 Git 仓库中只保留文件的指针。