3

我们正在修复我们的存储库问题,某些文件的路径不同 - 路径中的第一个文件夹是一组文件的“应用程序”和另一组文件的“应用程序”。为此,我们将所有分支中的所有文件重命名为大写“应用程序”并重新克隆整个存储库。

当我们尝试将一个分支合并到另一个分支时,对于许多文件,我们看到:

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.

我们可以使用“解决”合并策略,文件将被正确标记为“都重命名”,但我们不会丢失文件历史记录(根据我们的 git 大师关心)。

这里有一个问题:

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

为什么与默认的“递归”策略合并认为该文件没有重命名而是在分支中删除?

如果我们使用resolve策略,文件历史会丢失吗?

ps Repo 是私有的,所以我不能提供链接,对不起。

4

1 回答 1

1

这是一个旧的,但关于:

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

git log有一个--follow选择:

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

于 2019-04-11T09:06:32.497 回答