2014-10-28 3 views
2

Я делаю своего рода ребрендинг и переименовываю все корневые папки внутри проекта. Smartgit видит все файлы как отсутствующие и не проверенные. Когда я фиксирую некоторые из них, они помечены как renamed в журнале, но многие из них нет. Я не хочу потерять связь с источником fork для этих файлов. Я ничего не меняю в файлах, просто переименую все корневые папки и некоторые файлы внутри.Git не обнаруживает операцию большого переименования

Выполняю переименование с помощью функции Total Commander массового переименования. Это займет много времени, чтобы переименовать их вручную с помощью git mv.

Что я могу сделать, чтобы помочь git обнаружить переименования?

UPDATE

я узнал, что он обнаруживает переименование только недавно добавленных файлов, которые не существуют в источнике вилки.

UPDATE2

Я создал 2 клонов, чтобы проверить это поведение.

  1. Изменено один файл, фиксация и нажать в клоне 1.
  2. Исполняет переименование в клоне 2, фиксация, тянуть.

И теперь у меня конфликт с перестановкой в ​​клоне 2. Похоже, он фактически обнаруживает переименование, но почему тогда конфликт?

enter image description here

+0

так что вы это сделать: создать репозиторий с источниками, импортировать код (с копировать/вставить или что-то) в вашем хранилище, массовое переименование, попытайтесь зафиксировать. Это оно ? – mithrop

ответ

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

Имеет значение, могу ли я переустановить по часовой стрелке при совершении новой вилки. Я узнал, что git обнаруживает переименование только недавно добавленных файлов, которых не было в источнике fork. – Vlad

+0

Что именно вы подразумеваете под «источником вилки»? Можете ли вы привести пример, для которого обнаружение переименования не работает должным образом? – mstrap

+0

Я искал репозиторий github, сделал несколько коммитов, и теперь я хочу переименовать весь проект в следующий коммит. Но проблема в том, что если git не показывает переименования в журнале, я думаю, что он не будет правильно восстанавливаться, когда я вытаскиваю новые коммиты из исходного проекта. Если некоторые файлы были изменены там, то эти изменения не будут видны в моем разветвленном проекте, потому что git считает, что есть новые файлы и удаленные файлы, но не переименованы. – Vlad

 Смежные вопросы

  • Нет связанных вопросов^_^