git mv не удаляет старый файл - PullRequest
4 голосов
/ 11 октября 2010

Я запустил это:

 $ git mv README README.md

Тогда:

 $ git commit -m "renamed" README.md
 $ git push origin master

Но в github старый файл README все еще существует в хранилище. Почему?

1 Ответ

5 голосов
/ 11 октября 2010

Поскольку вы фактически не зафиксировали часть удаления для перемещения.

http://www.kernel.org/pub/software/scm/git/docs/git-commit.html

Содержимое, которое нужно добавить, можно указать несколькими способами:

...

3) путем перечисления файлов в качестве аргументов команды фиксации, в этом случае фиксация будет игнорировать изменения, внесенные в индекс, и вместо этого записывать текущее содержимое перечисленных файлов (которое уже должно бытьgit);

Обратите внимание на важный бит: будет игнорировать изменения, поставленные в индексе .git mv выполняет этапы удаления старого файла и создания нового, но не фиксирует их.Когда вы вызываете git commit README.md, он фиксирует версию файла с новым именем, но игнорирует поэтапное удаление старого файла.

Попробуйте вместо этого следующую последовательность:

$ git mv README README.md
$ git commit -m "renamed"
$ git push origin master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...