2014-10-28 50 views
2

我做了一种重新命名并重命名项目内的所有根文件夹。 Smartgit将所有文件视为丢失和未跟踪。当我提交时,其中一些在日志中标记为renamed,但其中很多不是。我不想失去这些文件与fork源的连接。我不更改文件内的任何内容,只需重命名所有根文件夹和一些文件。Git没有检测到大的重命名操作

我通过Total Commander mass rename functionallity执行重命名。用git mv手动重命名需要很长时间。

我能做些什么来帮助git检测重命名?

UPDATE

我发现它检测到只在其没有在叉源存在最近添加的文件重命名。

UPDATE2

我创建2个克隆来测试此行为。

  1. 更改一个文件,提交并推送在克隆1
  2. 演出重命名克隆2,提交,拉。

现在我在克隆2中有一个rebase冲突。好像它实际上检测到重命名,但为什么然后冲突呢?

enter image description here

+0

所以你这样做:创建一个Git仓库与你的源代码,进口一些代码(与复制/粘贴或东西)在你的仓库,大规模重命名,尝试提交。而已 ? – mithrop 2014-10-28 18:14:46

回答

1

Git不会跟踪重命名在提交时[1],但总是计算他们的飞行。因此,你无能为力。另请参见:

https://stackoverflow.com/a/7941544/241453

[1] https://git.wiki.kernel.org/index.php/Git_FAQ#Why_does_Git_not_.22track.22_renames.3F

+0

重要的是,我是否可以在新叉提交之后进行rebasease。我发现git只检测最近添加的fork源中不存在的文件的重命名。 – Vlad 2014-10-28 15:57:40

+0

你是什么意思的'叉源'?你可以举一些例子,说明重命名检测不能按预期工作吗? – mstrap 2014-10-28 19:46:09

+0

我分叉了一个github仓库,做了一些提交,现在我想在下一次提交时重命名整个项目。但问题是,如果git没有在日志中显示重命名,我认为当我从原始项目中提取新的提交时,它不会正确地rebase。如果某些文件在那里发生了变化,那么这些更改将不会在我的分支项目中看到,因为git认为有新文件和已删除文件但未重命名。 – Vlad 2014-10-28 22:50:17