Общее правило для сохранения истории обвинений состоит в том, чтобы сделать отдельный ход коммитом первым перед любыми изменениями.По моему опыту, это позволяет git blame
работать без необходимости использования опции -C
.Таким образом, в случае разбиения файла на новые файлы, это может быть сделано в два коммита:
- Дублируйте оригинал на новые места назначения, обязательно удалив оригинал
- Удалите лишние разделы из дублированных файлов
В приведенном примере это будет:
cp a.php b.php
mv a.php c.php
git add a.php b.php c.php
git commit
vim b.php # delete everything but 1 function
vim c.php # delete the 1 function
git add b.php c.php
git commit