Git: переименовал файл вручную, Git запутался - PullRequest
48 голосов
/ 17 января 2011

Я использую Git и вручную переименовал файл, который я добавил в хранилище. Теперь я добавил «новый» файл, который я переименовал в репозиторий, но Git жалуется, что «старый» файл был удален. Так как я могу заставить Git забыть о старом файле? А еще лучше, как мне сказать Git, что «новый» файл действительно является «новым» файлом, чтобы я мог сохранить историю изменений без изменений?

Ответы [ 4 ]

41 голосов
/ 17 января 2011

Нет проблем. Просто git rm old или даже git add -A, и он поймет, что это переименование. Git увидит удаление и добавление с тем же содержимым, что и переименование.

Вам не нужно отменять, удалять, использовать git mv и т. Д. git mv old new - это всего лишь короткая рука для mv old new; git rm old; git add new.

7 голосов
/ 17 января 2011

Сначала отмените поэтапное добавление для перемещенного вручную файла:

$ git reset path/to/newfile
$ mv path/to/newfile path/to/oldfile

Затем используйте Git для перемещения файла:

$ git mv path/to/oldfile path/to/newfile

Конечно, если вы уже зафиксировалиручное перемещение, вы можете вместо этого сбросить ревизию до перемещения, а затем просто git mv оттуда.

2 голосов
/ 17 января 2011

Попробуйте это:

mv new old
git rm new
git mv old new
0 голосов
/ 29 апреля 2013

Если возникает эта ошибка, это, вероятно, означает, что файл, который вы пытаетесь переместить, изначально не отслеживается git, или каталог, в который вы пытаетесь переместить файл, не является каталогом, отслеживаемым git.

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