Можно ли переименовать файл git после выполнения обычного mv? - PullRequest
0 голосов
/ 20 апреля 2020

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

Или мне нужно было бы создать своего рода макрос, который использует mv, чтобы переместить файл обратно к исходному имени, а затем git mv, чтобы переименовать его еще раз вот так:

function fixmv() { mv $2 $1 && git mv $1 $2 }

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

Ответы [ 2 ]

2 голосов
/ 20 апреля 2020

Около трех лет go я написал скрипт для этого - git-mv-after, который будет вызываться как git mv-after а-ля hg mv --after - но все, что вам действительно нужно сделать, это запустите git add old-name new-name.

(Мой сценарий необычен, так как выполняет множество проверок, чтобы убедиться, что переименование безопасно.)

Я думаю, git mv должен включать --after флаг, так что Git не намеренно тупее, чем Mercurial здесь. :-) Но это довольно незначительно.

1 голос
/ 20 апреля 2020

Да; Самый простой способ - запустить git add new-name и git rm --cached old-name. git специально не отслеживает переименования; это просто удаление из одного имени и добавление того же контента в новое имя.
git rm --cached говорит ему не жаловаться на тот факт, что файл, который вы просите удалить, не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...