我的情况是开发了原型应用程序而没有过多关注文件夹结构和命名。 随着原型的成熟,它在某些时候被切换为遵循命名约定,其中包括文件夹结构中的名称。
在项目文件命名为app_project.pro
之前,它现在被命名为app-project.pro
。
这种重构更改都发生在一个git提交中。
现在出现的问题是每次在重构评论之前有结帐时IDE都会中断。这使git bisect
成为一个地狱。
有没有办法在历史记录中使用git命令执行重构?我并非瞄准这里的交互式变基,而是在整个历史中每次出现app_project.pro
并app-project.pro
取代{<1}}。
想法:我目前的想法是尝试重构.git中的所有内容,而不是将其推送到原点。我是唯一一个使用它的人,所以它不应该是一个问题。
.git文件夹中没有app_project.pro
的概念。我猜测差异并没有存储在ASCII&gt;
答案 0 :(得分:2)
Tree filter就是你想要的:
$ git filter-branch --tree-filter 'if [ -f <file_name> ]
then
mv <file_name> <new_file_name>
fi' --force HEAD
答案 1 :(得分:0)
我认为你无法实现自己的目标。
如果您决定更改文件夹/文件的名称,那么git会将其视为不同的文件,因为您建议此版本控制不可编辑。
即使内置命令git mv oldname newname
也是以下的快捷方式:
mv oldname newname
git add newname
git rm oldname