在更改后指定Git重命名

11
由于我通常使用的工具,我经常在准备提交之前重命名文件并对其进行更改。
此时,git不再将该文件检测为简单的重命名,因为文件内容已经发生了变化。
是否有一条命令可以指定某个文件实际上也是另一个文件的重命名,即使内容看起来不同?

你使用了 git mv 进行重命名吗?在这种情况下,git status 应该告诉你已经重命名并修改了文件。 - Jan
可能是如何检测相似文件以进行重命名检测?的重复问题。 - Edward Thomson
@Jan 不,我通常是通过其他工具重命名文件,而不是使用git。因此我希望有一个命令,这样我就可以事后告诉服务器发生了一次未被检测到的重命名。 - Robert Christ
3个回答

7

Git中没有“重命名跟踪”功能,也不会在任何地方存储有关重命名的信息。Git使用基于相似性的启发式重命名检测(您可能需要启用它以查看更改:git diff -M,或者git config diff.renames true始终使用它(或git diff -Cgit config diff.renames copies以便还能检测副本)。它可以实时检测重命名操作。


这是假设您没有忘记将重命名的文件包含在提交中,即您使用了git mv <old> <new>...这只是mv <old> <new> && git add <new>

这意味着,如果您使用其他工具(例如IDE、文件管理器等)重命名了文件,则需要git add新文件(重命名后),并删除旧文件(git rm完全删除,git rm --cached保留在工作目录中)。


4

对于git,你不应该在同一个提交中重命名和修改文件。你应该运行git mv oldName newName来确保git知道这只是一个文件的简单移动,然后提交你的更改。


0

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