Git не обнаруживает переименование файла, содержимое не изменяется.Не могу использовать git-mv - PullRequest
1 голос
/ 21 марта 2019

У меня есть совершенное репо, где рабочий процесс выглядит следующим образом:

Редактирование на удаленном компьютере1, на котором нет git.

~/project/files+folders

После редактирования Irsync его на machine2, где он объединен с хранилищем.

~/project/.git
~/project/files+folders

На machine2 я затем использую git do add / commit для файлов.Переименования файлов выполняются на machine1 с помощью mv и пересылаются на machine2.По этой причине я не могу использовать git-mv, потому что machine1 не имеет git, и, возможно, это даже не имеет значения, если он есть, потому что на machine1 не выполняется никаких коммитов.

Моя проблема в том, чтоgit status на машине2 показывает, что переименованный файл сначала удаляется, а затем повторно добавляется, а не переименовывается.Содержание не изменяется.Даже когда я переименую его непосредственно на machine2, он также не распознается.Только когда я использую git mv.

Это означало бы, что мне нужно переименовать все файлы с помощью git mv на машине2 и с помощью mv на машине1, чтобы rsync продолжал работать так, как ожидалось (не проверял это, но я предполагаю, чтоне будет синхронизировать переименованные файлы, так как они идентичны на обеих машинах).

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

Одна вещь, я предполагаю, что переименование не будет зафиксировано, потому что git status показывает его как deleted и addedоперации, в то время как обычно я вижу renamed в git status.

Переименование будет выглядеть так mv module_stuff_information.py module_core.py

1 Ответ

1 голос
/ 21 марта 2019

Вы должны добавить оба изменения (удаление и добавление) в индекс, чтобы git распознал его как переименование. Так что git add -A, например, должно помочь.

...