Git(或tortoisegit)将LFS文件标记为已修改,阻止推或拉

时间:2018-01-30 20:02:40

标签: tortoisegit git-lfs

我的git repo有问题。我们有一个LFS文件只能由我们的一个用户在Mac上修改过。 mac用户无需事故即可完成拉动和推送。

但是在Windows开发者的PC上,git(或tortoisegit)会自动将LFS文件标记为已修改,即使它不是。我认为这是因为从指针到文件的切换并没有被tortoisegit清楚地理解。

丑陋的效果是Windows用户试图推送并获得一个"你必须拉动"消息,但由于未真正修改的LFS文件,然后尝试拉动并获得合并冲突。但是,在所谓的冲突的tortoisegit下拉列表中没有解决方案...选项。还原将图标设置为未修改,但任何tortoisegit操作仍然会失败,就好像修改了lfs文件并将图标状态重置为已修改。

由于用户无法推送,无法提取,并且无法解决导致无法推或拉的合并冲突,因此用户会被卡住。我用Google搜索并发现一些旧帖子暗示tortoisegit并不能正确处理lfs并导致这种情况,但是有没有人比git命令更可怕地解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

对此的正确解决方案是将lfs文件错误地标记为已修改的文件。但是,我现在正在使用此解决方法:

  1. (windows)用户提交tortoisegit中的更改,确保取消选中,因此不在提交中包含错误标记修改的lfs文件
  2. 用户删除( tortoisegit删除,只是普通的旧Windows文件删除)错误标记修改的lfs文件
  3. 该文件现在显示为"缺少"在tortoisegit状态,如果查看
  4. 用户执行拉取,并且成功拉出lfs文件而没有合并冲突
  5. 用户现在可以成功推送提交
  6. 这是我们使用的方法,直到我们发现lfs文件被错误地标记为已修改的修复程序。