Intereting Posts
Как использовать управление версиями и xampp вместе без копирования и вставки файлов в HTDOCS? не может изменить ветвь git в проекте Symfony Использование фильтров git для сжатия изображений Дженкинс: тайм-аут Git-плагина при попытке вытащить репозитоты с помощью SSH Папка хранилища SVN перезаписана, но в ней есть несколько старых svn-папок, некоторые из которых отсутствуют Обзорная доска с git. «Кажется, нет различий!», Но есть Командная строка 'scm' загружает все компоненты из RTC создавать «голые» реплики git без клонирования Eclipse git получает неправильный относительный путь в файле Выполняет ли git checkout origin / master также актуальное стремление? git push heroku master терпит неудачу, даже если все кажется прекрасным Один репозиторий для двух организаций Github? Как я * полностью * указать другой '.git' dir GIT: Мой товарищ по команде не может вытащить изменения, которые я нажал Разрушенные коммиты противоречат их первоначальным обязательствам

Как переместить файл (сохраняя историю) и создать одно имя в git?

У меня есть следующая проблема: у меня есть git repo, и я хочу переместить файл xy из каталога A в каталог B, сохранив его историю. Затем я хочу создать новый файл с тем же именем (xy), но с другим содержимым в каталоге A.

Я попробовал это, используя git mv A/xy B/xy а затем создав новый файл xy в A. Но он не работал так, как я хотел. Мой журнал git показывает, что файл B/xy был создан новым (и не имеет истории) и что старый контент файла A/xy был удален и добавлено новое содержимое (этот файл все еще имеет всю историю, где он должен иметь никто)

Поэтому мой вопрос к гуру-гуру: возможно ли это и как мне это сделать? Возможно, параметр git add что я могу использовать или что-то при создании файла?

Попробуйте git log --follow -- b/xy : вы должны увидеть историю журнала xy еще до перехода.

 --follow 

Продолжайте перечислять историю файла за пределами переименований (работает только для одного файла).

Если вы не хотите использовать --follow , вам понадобится git filter-branch .

Однако это не будет видно на GitHub (или BitBucket).