2013-05-05 2 views
0

У меня есть эта ситуация в моем каталоге Dev с мерзавцем:Комбината совершить историю двух файлов в мерзавце

/mobile.html 
/sub-folder/mobile.html 

Это тот же файл с фиксациями в обоих местах. Сначала я работал над mobile.html в корневом каталоге, а затем перемещал его в/sub-folder, но его фиксации никогда не выполнялись. Я продолжал работать над этим и делал новые коммиты.

Так что теперь я в основном имеют:

  • /mobile.html - совершению, совершают б
  • /sub-folder/mobile.html - совершить с, совершить d

Есть в любом случае, чтобы присоединиться к совершению истории на эти два файлы?

ответ

3

Я думаю, что вы видите здесь, что вы не знаете о том, что Git не отслеживает истории отдельных файлов (!). В модели Git отслеживается только контент, и его распределение по всем файлам, присутствующим в данном снимке репозитория (что представляет собой фиксация), не имеет значения. Следовательно, переименования не отслеживаются каким-либо конкретным способом, а команда git mv - это просто помощник удобства для git rm --cached <filename> && mv <filename> <othername> && git add <othername>.

Чтобы компенсировать воспринимаемый разрыв истории изменений файла, Git имеет специальные кнопки в своих командах обхода истории, которые могут быть использованы, чтобы сообщить Git, как сильно он должен попытаться определить, что человек воспримет как переименование файла , В частности, посмотрите параметры командной строки --follow, --find-renames и --find-copies команды git log.

+1

@Anatoly, см. Также [это] (http://stackoverflow.com/a/5493663/720999). – kostix

0

Если вы переместили файлы и совершили их без изменения, git может знать, что это перемещение, а не файлы с удалением + новые.

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