Git 未检测到文件重命名,内容未更改。无法使用 git-mv

Git not detecting file rename, content is unchanged. Can't use git-mv

我有一个提交的 repo,其中的工作流程如下:

在没有 git.

的远程机器 1 上编辑

~/project/files+folders

编辑后我将它 rsync 到 machine2,在那里它与存储库合并。

~/project/.git
~/project/files+folders

然后我在 machine2 上使用 git 执行 add/commit 文件。文件重命名通过 mv 在 machine1 上执行,并同步到 machine2。这就是为什么我不能使用 git-mv 的原因,因为 machine1 没有 git 并且如果它有也可能无关紧要,因为没有在 machine1 上进行提交。

我的问题是 machine2 上的 git status 显示重命名的文件先被删除然后重新添加,而不是重命名。内容不变。即使我直接在 machine2 上重命名它,它也无法识别。仅当我使用 git mv 时。

这意味着我需要在 machine2 上通过 git mv 重命名所有文件,在 machine1 上通过 mv 重命名所有文件,以便 rsync 继续按预期运行(尚未测试,但我假设它不会同步重命名的文件,因为它们在两台机器上都是相同的)。

什么导致 git 无法通过 mv 检测到文件重命名?有没有我可以设置的标志,以便注意到此重命名?

有一件事,我假设不会提交任何重命名,因为 git status 将其显示为 deletedadded 操作,而通常我看到的是 renamedgit status.

重命名如下所示mv module_stuff_information.py module_core.py

您必须将两种更改(删除和添加)都添加到索引中,以便 git 将其识别为重命名。因此 git add -A,例如,应该有所帮助。