我有一个已提交的仓库,其工作流程如下:
在没有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
将其显示为deleted
和added
操作,而通常我会在其中看到renamed
git status
。
重命名看起来像这样mv module_stuff_information.py module_core.py
答案 0 :(得分:1)
您必须同时对索引添加更改(删除和添加),以便git将其识别为重命名。因此,git add -A
应该有帮助。