我有时会在Java中修改类名,这意味着我需要修改文件名。
为了保持SVN文件的历史记录,我使用TortoiseSVN工具中的Repair Move。在“检查修改”视图中,选中一个丢失的文件和一个未版本化的文件。右键单击它们中的一个,然后选择Repair Move选项。
这将删除SVN中的旧文件,并添加新文件,同时附加旧文件的历史记录。这样当你执行svn log命令时,你就可以看到从文件名更改之前开始的整个历史记录。
Git有等效的命令吗?根据我的工作流程,似乎应该执行以下操作:
为了保持SVN文件的历史记录,我使用TortoiseSVN工具中的Repair Move。在“检查修改”视图中,选中一个丢失的文件和一个未版本化的文件。右键单击它们中的一个,然后选择Repair Move选项。
这将删除SVN中的旧文件,并添加新文件,同时附加旧文件的历史记录。这样当你执行svn log命令时,你就可以看到从文件名更改之前开始的整个历史记录。
Git有等效的命令吗?根据我的工作流程,似乎应该执行以下操作:
git mv <old filename> <new filename>
# Make the class name changes to reflect the filename change.
git commit -a -m "Changed filename from Foo.java to Bar.java"
这似乎是一种冗长的做法。
我以为在手动移动文件并对文件本身进行更改后,我将能够使用git mv
。但是,git mv
似乎只是mv
命令的包装器,并添加了对git的更改。
在移动完成后,有没有一种方法可以通知git已移动的文件?
git mv old new
以相同的方式,希望它只会对索引进行必要的更新。我想知道还有多少人认为这样做是一种直观的解决方案。 - jpierson