为什么这个文件阻止我合并我的分支?
Why does this file prevents me from merging my branch?
我有一个 Git 存储库,其中安装了 LFS 并且工作正常。在我的 dev
b运行ch 上,我使用 Windows 文件资源管理器将图像文件(由 LFS 跟踪)从 NoMedal-Fade.png
重命名为 None-Fade.png
。我承诺,推到 GitLab,一切顺利。
然后,在我的计算机上这个 repo 的另一个实例中(这个 repo 在另一个名为 production/foo
的 b运行ch 上,我 运行 git fetch
,并且 git merge origin/dev
获取并合并我刚刚在另一个实例中所做的修改。这是我无法理解发生了什么的地方:合并失败并出现此错误:
error: add_cacheinfo failed to refresh for path '■■■■/■■■■/■■■■/■■■■/■■■■/■■■■/None-Fade.png'; merge aborting.
这在未暂存的修改中添加了新文件:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: ■■■■/■■■■/■■■■/■■■■/■■■■/■■■■/None-Fade.png
在我不解的情况下,我尝试git reset --hard
,但是文件还在。我尝试 git checkout <file path>
,但文件仍然在这里。我删除了实例,克隆回来,然后再次尝试相同的过程,仍然是同样的问题。我尝试暂存我想要的文件,提交并推送它。现在该文件不再出现在未暂存文件列表中,但由于上述相同的错误 (add_cacheinfo
),我仍然无法合并。最后,我的一个朋友告诉我在合并之前尝试 git config core.fscache false
,不幸的是,没有任何改变(全局配置相同)。
PS C:\Users\■■■■> git --version
git version 2.24.0.windows.2
好吧,我唯一发现的就是在重命名文件之前重置分支,使用 git reset --hard <commit hash before rename>
和 git push origin <remote branch>:<local branch> --force
更新远程。
警告:请记住,如果您与多人一起工作,后一个命令非常危险。鉴于我是这个项目中唯一一个有朋友的人,所以很容易告诉他将项目克隆回来并避免更大的错误。
从历史记录中删除错误提交后,我再次使用 git mv <file name> <new file name>
重命名文件,而不是使用 Windows' 文件资源管理器。它运行良好,显然,我的文件没有更多问题。
但是,这仍然不是问题的真正解决方案,更像是一种解决方法。在有人找到其他答案之前,我会保留我的答案作为最佳解决方案。
我有一个 Git 存储库,其中安装了 LFS 并且工作正常。在我的 dev
b运行ch 上,我使用 Windows 文件资源管理器将图像文件(由 LFS 跟踪)从 NoMedal-Fade.png
重命名为 None-Fade.png
。我承诺,推到 GitLab,一切顺利。
然后,在我的计算机上这个 repo 的另一个实例中(这个 repo 在另一个名为 production/foo
的 b运行ch 上,我 运行 git fetch
,并且 git merge origin/dev
获取并合并我刚刚在另一个实例中所做的修改。这是我无法理解发生了什么的地方:合并失败并出现此错误:
error: add_cacheinfo failed to refresh for path '■■■■/■■■■/■■■■/■■■■/■■■■/■■■■/None-Fade.png'; merge aborting.
这在未暂存的修改中添加了新文件:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: ■■■■/■■■■/■■■■/■■■■/■■■■/■■■■/None-Fade.png
在我不解的情况下,我尝试git reset --hard
,但是文件还在。我尝试 git checkout <file path>
,但文件仍然在这里。我删除了实例,克隆回来,然后再次尝试相同的过程,仍然是同样的问题。我尝试暂存我想要的文件,提交并推送它。现在该文件不再出现在未暂存文件列表中,但由于上述相同的错误 (add_cacheinfo
),我仍然无法合并。最后,我的一个朋友告诉我在合并之前尝试 git config core.fscache false
,不幸的是,没有任何改变(全局配置相同)。
PS C:\Users\■■■■> git --version
git version 2.24.0.windows.2
好吧,我唯一发现的就是在重命名文件之前重置分支,使用 git reset --hard <commit hash before rename>
和 git push origin <remote branch>:<local branch> --force
更新远程。
警告:请记住,如果您与多人一起工作,后一个命令非常危险。鉴于我是这个项目中唯一一个有朋友的人,所以很容易告诉他将项目克隆回来并避免更大的错误。
从历史记录中删除错误提交后,我再次使用 git mv <file name> <new file name>
重命名文件,而不是使用 Windows' 文件资源管理器。它运行良好,显然,我的文件没有更多问题。
但是,这仍然不是问题的真正解决方案,更像是一种解决方法。在有人找到其他答案之前,我会保留我的答案作为最佳解决方案。