2014-10-28 13 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