git - Git LFS 不一致?
问题描述
我最近将一些(二进制)文件(作为 LFS 文件)添加到项目中,所有内容都已提交并从我的家用计算机推送(到 GitLab,不确定是否相关)。我跑在那里git status
,发现一切都是最新的。然后我将整个 repo 同步(通过rsync
ssh)到另一台机器,但发现那里git status
报告文件不同:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: pkg/site-cs/src/cs-dem.grd
并且对于git diff
diff --git a/pkg/site-cs/src/cs-dem.grd b/pkg/site-cs/src/cs-dem.grd
index 9d52a1f..1c86687 100644
Binary files a/pkg/site-cs/src/cs-dem.grd and b/pkg/site-cs/src/cs-dem.grd differ
在文件上运行md5sum
会在两台机器上得到相同的结果。如果我跑
git revert pkg/site-cs/src/cs-dem.grd
在远程机器上,则md5sum
不再与我家机器上的匹配,但远程机器的 git 报告该文件现在未修改。
我对这种看似不一致的情况感到有些困惑。有没有人有解释(甚至更好,一个修复)。
[编辑]
哦,更奇怪的是,同步后在远程机器上
> ls -l pkg/site-cs/src/cs-dem.grd
-rw-rw-r-- 1 jjg jjg 652304 Jan 13 00:09 pkg/site-cs/src/cs-dem.grd
> hd pkg/site-cs/src/cs-dem.grd | head
00000000 43 44 46 01 00 00 00 00 00 00 00 0a 00 00 00 02 |CDF.............|
00000010 00 00 00 01 78 00 00 00 00 00 01 e1 00 00 00 01 |....x...........|
00000020 79 00 00 00 00 00 01 51 00 00 00 0c 00 00 00 05 |y......Q........|
> git checkout pkg/site-cs/src/cs-dem.grd
> ls -l pkg/site-cs/src/cs-dem.grd
-rw-rw-r-- 1 jjg jjg 131 Jan 15 12:03 pkg/site-cs/src/cs-dem.grd
> cat pkg/site-cs/src/cs-dem.grd
version https://git-lfs.github.com/spec/v1
oid sha256:8ccf1b5183566dd44d05bcec97940bc70c0a7b348a07c2e659c0d64db0db253e
size 652304
这是 LFS 指针文件,现在ls-files
错误地报告文件大小。
> git lfs ls-files -d
filepath: pkg/site-cs/src/cs-dem.grd
size: 652304
checkout: false
download: true
oid: sha256 8ccf1b5183566dd44d05bcec97940bc70c0a7b348a07c2e659c0d64db0db253e
version: https://git-lfs.github.com/spec/v1
我发现令人费解的是两个相同的 repo 副本如何表现不同,就好像在它们之外有一些状态。
两台机器git-lsf
的路径上都有可执行文件。
解决方案
推荐阅读
- pandas - Pandas 合并数据框时的“多索引”问题
- powershell - PowerShell WMI/WQL 从 SCCM 获取信息 - 优化
- vue.js - 如何从组件中获取变量值并将其分配给 vuejs 中另一个组件中的变量
- c# - 客观性和继承性
- vba - VBA - 找到一个知道它的标题、类和它的所有者的窗口句柄
- java - 从列表中过滤具有相同成员的对象
- python - 在 python 3.6、ubuntu 16.04 中安装 openMPI(或 spinup)失败
- java - CSVParser [Apache] - 为什么它总是忽略第一行(JAVA)
- python - 在 Visual Studio Code 中使用 Anaconda
- android - react-native-file-provider 在 gradle 构建时给出错误