"size" 在 git diff 输出中指的是什么?
What does "size" refer to in git diff output?
git diff
生成附加图像中的输出。文件的哈希值已更改。我不太明白的是“大小”参数具体表示什么。
我假设这是磁盘上的大小。输出是从 Windows 上的 cygwin linux 安装生成的,因此行尾可能是检查和保存文件时更改的内容。
(附注:-1,3 和 +1,3 表示文件中的前三行已更改;这可能是指元数据还是仅是文件内容?)
我在官方文档中没有看到任何对这个参数的引用:
或这些有些相关的问题:
- Git: what does the number of +/- signs in diff / merge output mean? [duplicate]
- What does "@@ -1 +1 @@" mean in Git's diff output?
这是一个文本文件,所以如果内容发生变化,我希望看到有意义的输出。我有什么保证内容没有被更改?
Git diff 为每个文件的新行显示“+”,为删除的行显示“-”。如果您在文本编辑器中打开 file.ipynb,您应该能够看到一行包含“size 33626”
除了 ,请注意 Git 知道的完整读取文件:
version https://git-lfs.github.com/spec/v1
oid <big ugly oid>
size <value>
OID 和大小值更改的位置。 first 行是 LFS 包装器的指令,告诉它们:these aren't the files you're looking for。 second 行告诉 LFS 包装器他们正在 寻找哪些文件,第三行告诉包装器这些文件有多大。
但是等一下: 是什么关于“LFS 包装器”的所有内容?
LFS 不是 Git,而是 使用 Git 的系统。 LFS stands for Large File Storage. Git 本身并没有意识到 LFS 的存在。当您安装 Git-LFS 时,它会“包装”Git 并在几个重要位置插入 filters,Git 在 Git 正在尝试检查(使用 git checkout
、git reset
等)或添加(使用 git add
等)某些文件的内容。
这些过滤器秘密地将 实际文件 隐藏在 Git 之外的某个地方。他们将文件内容发送到一个单独的服务器——LFS 服务器,它只存储 large 或其他秘密文件——并欺骗 Git 存储,在 Git 存储库中,这些有趣的小“指针文件”由您刚刚看到的三行组成。
Git 不知道发生过这种情况。如果您使用 Git 而不是 LFS-Git,您将看到有趣的小指针文件。仅当您 wrap 您的 Git 与 LFS 包装器并调用它们时——一旦您正确包装了您的特定存储库,Git 将实际为您调用它们在大多数情况下——您会看到文件本身吗?
由于您正在查看包装器,因此您使用的是未包装的 Git。这里的所有都是它的。展开的 Git 看到指针文件。包装的 Git 被 包装器 小心地欺骗了,因此 Git 看到了替代文件,但 你看到真实的文件。如果当您看到替代文件时,那就是抽象失败:您看到的是底层机制。
如果您安装并设置 LFS 包装器——使用上面的 link 找到它们——您的 Git 将看到包装的文件,但包装器会偷偷地替换为大文件, 您 应该可以看到有人希望您使用的文件。有人,不管是谁,不希望你使用包装器:它们只是用于 LFS。
git diff
生成附加图像中的输出。文件的哈希值已更改。我不太明白的是“大小”参数具体表示什么。
我假设这是磁盘上的大小。输出是从 Windows 上的 cygwin linux 安装生成的,因此行尾可能是检查和保存文件时更改的内容。
(附注:-1,3 和 +1,3 表示文件中的前三行已更改;这可能是指元数据还是仅是文件内容?)
我在官方文档中没有看到任何对这个参数的引用:
或这些有些相关的问题:
- Git: what does the number of +/- signs in diff / merge output mean? [duplicate]
- What does "@@ -1 +1 @@" mean in Git's diff output?
这是一个文本文件,所以如果内容发生变化,我希望看到有意义的输出。我有什么保证内容没有被更改?
Git diff 为每个文件的新行显示“+”,为删除的行显示“-”。如果您在文本编辑器中打开 file.ipynb,您应该能够看到一行包含“size 33626”
除了
version https://git-lfs.github.com/spec/v1
oid <big ugly oid>
size <value>
OID 和大小值更改的位置。 first 行是 LFS 包装器的指令,告诉它们:these aren't the files you're looking for。 second 行告诉 LFS 包装器他们正在 寻找哪些文件,第三行告诉包装器这些文件有多大。
但是等一下:
LFS 不是 Git,而是 使用 Git 的系统。 LFS stands for Large File Storage. Git 本身并没有意识到 LFS 的存在。当您安装 Git-LFS 时,它会“包装”Git 并在几个重要位置插入 filters,Git 在 Git 正在尝试检查(使用 git checkout
、git reset
等)或添加(使用 git add
等)某些文件的内容。
这些过滤器秘密地将 实际文件 隐藏在 Git 之外的某个地方。他们将文件内容发送到一个单独的服务器——LFS 服务器,它只存储 large 或其他秘密文件——并欺骗 Git 存储,在 Git 存储库中,这些有趣的小“指针文件”由您刚刚看到的三行组成。
Git 不知道发生过这种情况。如果您使用 Git 而不是 LFS-Git,您将看到有趣的小指针文件。仅当您 wrap 您的 Git 与 LFS 包装器并调用它们时——一旦您正确包装了您的特定存储库,Git 将实际为您调用它们在大多数情况下——您会看到文件本身吗?
由于您正在查看包装器,因此您使用的是未包装的 Git。这里的所有都是它的。展开的 Git 看到指针文件。包装的 Git 被 包装器 小心地欺骗了,因此 Git 看到了替代文件,但 你看到真实的文件。如果当您看到替代文件时,那就是抽象失败:您看到的是底层机制。
如果您安装并设置 LFS 包装器——使用上面的 link 找到它们——您的 Git 将看到包装的文件,但包装器会偷偷地替换为大文件, 您 应该可以看到有人希望您使用的文件。有人,不管是谁,不希望你使用包装器:它们只是用于 LFS。