Подтвердить что ты не робот

Может ли Eclipse Refactor> Move быть интегрирован с Git?

Одна из замечательных особенностей использования IDE для Java - это автоматические рефакторинги, которые вы получаете. Проблема, с которой я столкнулась, заключается в том, что после использования Рефактоp > Переместить, чтобы переместить класс в другой пакет (который перемещает сам файл в файловой системе), git status показывает, что файл в старом местоположении был удален и добавлен новый в новое местоположение.

Обходной путь, который я нашел, неуклюже:

mv src/com/example/newpackage/Foo.java src/com/example/oldpackage/Foo.java
git mv src/com/example/oldpackage/Foo.java src/com/example/newpackage/Foo.java

Есть ли какой-либо способ (при использовании плагина Git для Eclipse), чтобы рефакторинг выполнял git mv вместо того, чтобы наивная файловая система перемещалась?

4b9b3361

Ответ 1

То, как Git работает с переименованием/перемещением (удаляет старый файл и добавляет новый файл). Затем он обнаруживает содержимое файла и распознает переименование на основе алгоритма. Поэтому даже он показывает, что вы удаляете и добавляете, если вы совершаете, а затем выполняете "git log --follow movefilename", он должен показать вам всю историю, даже историю перед переименованием.