Я использую Git и вручную переименовал файл, который я добавил в репозиторий. Теперь я добавил «новый» файл, который я переименовал в репозиторий, но Git жалуется, что «старый» файл был удален. Итак, как я могу заставить Git забыть о старом файле? Еще лучше, как я могу сказать Git, что «новый» файл действительно является «новым» файлом, чтобы я мог сохранить историю изменений целыми?Git: переименован файл вручную, Git confused
ответ
Во-первых, отменить ваш поставил добавить для вручную переместить файл:
$ git reset path/to/newfile
$ mv path/to/newfile path/to/oldfile
Затем, используя Git, чтобы переместить файл:
$ git mv path/to/oldfile path/to/newfile
Конечно, если вы уже совершили ручной ход, вы можете захотеть сбросить до версии перед перемещением, а затем просто git mv
оттуда.
Попробуйте это:
mv new old
git rm new
git mv old new
Это не работает. Git по-прежнему не помещает файл как переименованный. –
Там нет никаких проблем. Просто git rm old
или даже git add -A
, и он поймет, что это переименование. Git увидит удаление плюс добавление с тем же содержимым, что и переименование.
Вам не нужно отменять, не использовать, использовать git mv
и т. Д. git mv old new
- это только короткая рука для mv old new; git rm old; git add new
.
Если старый файл уже ушел, вы должны использовать 'git rm --cached old', так как в дереве работ нет файла для удаления. – Cascabel
Что делать, если вы перемещаете файл и меняете несколько строк, тогда 'git add -A'? Является ли Git достаточно умным, чтобы узнать, что файл _similar_ такой же, как старый файл? – Phil
@Phil Да. Попробуй. –
Если эта ошибка возникает, это, вероятно, означает, что файл, который вы пытаетесь переместить, изначально не отслеживается git или каталог, в который вы пытаетесь переместить файл, не является каталогом git.
- 1. Как Git знает, что файл был переименован?
- 2. git cherry-pick с целевым файлом переименован
- 3. Confused by git checkout
- 4. Confused с GIT-толчке
- 5. git: как слить файл вручную, когда git не замечает конфликтов
- 6. Как вернуть файл в Git, который был переименован
- 7. Отмена изменения git, когда файл был переименован (удален и добавлен)
- 8. Confused by git filter-branch
- 9. вручную создать Git вилы
- 10. Confused on git workflow (PHP/MySQL)
- 11. GIT: /.git/index.lock ': существует файл
- 12. git push .git/файл описания
- 13. Вручную слить запрос git pull
- 14. running git reset --hard вручную
- 15. git: невозможно удалить файл
- 16. Как полу-вручную управлять файлом в git?
- 17. Полный файл изменен git
- 18. git add -A vs git добавить файл
- 19. Git Удалить Большой файл из репозитория git
- 20. git признать файл из .git папки
- 21. Git: Исключить файл с git clean
- 22. Включите файл конфигурации git в папке .git
- 23. Git hook commit-msg git добавить файл
- 24. git пытается загрузить файл, который уже удален вручную.
- 25. Как вручную расшифровать файл, зашифрованный с помощью git crypt
- 26. Как обнаружить конфликты, разрешенные вручную в git
- 27. git hook - не репозиторий git: '.git'
- 28. Git: Вручную слияние между текущей версией?
- 29. Обновить копию вручную с помощью git
- 30. Как вручную объединить ветку в git?
'git mv old new' по существу просто' git rm --cached old; mv старый новый; git add new', с некоторыми дополнительными умениями. Git идентифицирует переименования, ища аналогичный контент, поэтому он будет определять их независимо от того, используете ли вы git mv. То есть, нет никакого способа, чтобы * сказать *, что эти два файла соответствуют. – Cascabel
Возможный дубликат [Как сделать git отмеченным удаленным и новым файлом в качестве перемещения файла?] (Http://stackoverflow.com/questions/433111/how-to-make-git-mark-a-deleted-and -a-new-file-as-a-file-move) –