Git合并显示“重命名/删除”对于在两个分支中真正重命名的文件

3

我们正在解决仓库问题,有些文件路径的大小写不同 - 对于一组文件,路径的第一个文件夹是 "Application",而对于另一组文件,路径的第一个文件夹是 "application"。为了解决这个问题,我们将所有文件的名称改为大写的 "Application",并重新克隆整个仓库。

当我们尝试将一个分支合并到另一个分支时,我们会发现许多文件出现以下情况:

CONFLICT (rename/delete): 
Applications/Views/sell.cshtml deleted in HEAD and renamed in feature123_branch. 
Version feature123_branch of Applications/Views/sell.cshtml left in tree.

Mergetool提供了一个选项,可以在使用重命名的文件时删除该文件。

但是这个文件只是在HEAD和feature123_branch中被重命名,例如github.com显示:

file renamed from {applications/ → Applications/}/Views/sell.cshtml for all commits.

我们可以使用“resolve”合并策略并正确标记文件为“both renamed”,但是我们不想丢失文件历史记录(根据我们的Git专家的建议)。
以下是一个问题:
如何使用Git命令查看文件的真实历史记录(与Github提交历史记录相同),显示文件已更名?
为什么使用默认的“递归”合并策略认为该文件在分支中被删除而不是重命名?
如果我们使用"resolve"策略,那么文件历史记录会丢失吗? p.s. Repo是私有的,所以我不能提供链接,抱歉。

1
请点击以下链接查看相关的编程内容:https://dev59.com/d2fWa4cB1Zd3GeqPgFci - Gabriele Petronella
Applications目录下有多少个版本化的文件?使用命令git ls-files Applications | wc -l可以得到数量。 - John Szakmeister
应用程序下有大约8500个文件,其中大约250个合并冲突是由于application->Application的问题,其余文件在两个分支中的路径已经都是大写。 - Danila Polevshchikov
@DanilaPolevshikov 你好,谢谢 - 你能否详细说明一下 git 冲突具体意味着什么?我也遇到了同样的错误,正在尝试找出问题所在。谢谢。 - BenKoshy
1个回答

1

这是一个老问题,但涉及到:

如何使用git命令查看文件的真实历史记录(与github提交历史相同),以显示该文件已被重命名?

git log有一个--follow选项:

--follow-继续列出文件的历史记录,超越重命名(仅适用于单个文件)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接