【问题标题】:Git not detecting file rename, content is unchanged. Can't use git-mvGit 未检测到文件重命名,内容未更改。无法使用 git-mv
【发布时间】:2019-08-12 04:10:34
【问题描述】:

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

在没有 git 的远程 machine1 上编辑。

~/project/files+folders

编辑后我将它同步到 machine2,它与存储库合并。

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

然后我在 machine2 上使用 git 添加/提交文件。文件重命名通过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 操作,而通常我在git status 中看到renamed

重命名看起来像这样mv module_stuff_information.py module_core.py

【问题讨论】:

    标签: git rename mv


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这是我的问题。我读过这个,但不是很确定。我做了一个测试,它消除了我的担忧。我害怕丢失历史记录,就像我最近对我同时愚蠢地编辑和重命名的几个文件所做的那样。
    猜你喜欢
    • 2012-11-28
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2017-08-08
    • 2011-08-26
    相关资源
    最近更新 更多