Git слить локальную историю в удаленный репозиторий - PullRequest
0 голосов
/ 06 июля 2018

Я реструктурировал папки моего проекта. Я вижу, что потерял историю коммитов до реструктуризации файлов в моем удаленном репозитории.

У меня есть история до реструктуризации на местном уровне. Прямо сейчас каждый, кто клонирует репозиторий, не имеет истории коммитов до реструктуризации. В любом случае я могу перестроить историю коммитов и объединить ее с удаленным репозиторием?

Когда я попробую эту команду:

git log --follow pom.xml

Я вижу полную историю файла, но когда я не использую - следите за журналом, который останавливается при фиксации реструктуризации. Мне бы хотелось, чтобы он отображал всю историю. Есть ли способ это исправить?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Единственный способ потерять историю в Git - это удалить коммиты. Это потому, что коммиты являются историей. Нет истории файлов; есть только коммиты.

Когда вы используете git log --follow pom.xml, вы говорите Git синтезировать историю файлов, блуждая по истории фиксации и отмечая, когда происходит прикосновение к файлу с именем pom.xml. Опция --follow сообщает Git, что в дополнение к проверке, если pom.xml является измененным в этом коммите, он также должен проверить, является ли он переименованным в этом коммите. Если это так, Git проверяет ранее , фиксирует старое имя (включая полный путь к каталогу) вместо нового имени, поэтому Git больше не ищет new/pom.xml, а теперь ищет old/pom.xml или что-либо еще и создание истории файлов для этого файла.

Если вы используете IDE, IDE должна делать то же самое, что и Git - синтезировать историю файлов, выбирая коммиты, которые изменяют этот файл, и проверять операции переименования в процессе, если вы этого хотите.

0 голосов
/ 06 июля 2018

Наконец-то я узнал, что это проблема только для Bitbucket и Eclipse. Bitbucket показывает все коммиты в хранилище, но не может показать журнал файла sinbgle с помощью команды --follow. Та же проблема с Eclipse. Intellij отлично работает.

...