Как сделать так, чтобы git пометил удаленный и новый файл как файл перемещенный? - PullRequest
409 голосов
/ 11 января 2009

Я переместил файл вручную, а затем изменил его. По словам Git, это новый файл и удаленный файл. Есть ли способ заставить Git рассматривать его как перемещение файла?

Ответы [ 14 ]

1 голос
/ 08 апреля 2015

Для меня это сработало, чтобы спрятать, сохранить все изменения перед фиксацией и вытащить их снова. Это заставило git повторно проанализировать добавленные / удаленные файлы и правильно пометить их как перемещенные.

0 голосов
/ 17 июля 2018

Я понимаю этот вопрос так: «Как заставить git распознавать удаление старого файла и создание нового файла при перемещении файла».

Да в рабочем каталоге, когда вы удалите старый файл и вставите старый файл, git status скажет "deleted: old_file" и "Untracked files: ... new_file"

Но в промежуточном индексе / уровне, когда вы добавляете и удаляете файл с помощью git, он будет распознаваться как перемещение файла. Для этого, если вы выполнили удаление и создание с помощью своей операционной системы, введите следующие команды:

git add new_file
git rm old_file

Если содержимое файла на 50% или более похоже, при запуске команды git status вы получите:

renamed: old_file -> new_file
0 голосов
/ 16 июля 2017

Когда я редактирую, переименовываю и перемещаю файл одновременно, ни одно из этих решений не работает. Решение состоит в том, чтобы сделать это в два коммита (редактировать и переименовать / переместить отдельно), а затем fixup второй коммит через git rebase -i, чтобы сделать его одним коммитом.

0 голосов
/ 13 мая 2014

Вероятно, есть лучший способ сделать это из командной строки, и я знаю, что это взлом, но я так и не смог найти хорошего решения.

Использование TortoiseGIT: Если у вас есть коммит GIT, в котором некоторые операции перемещения файлов отображаются в виде загрузки, добавления / удаления, а не переименования, даже если файлы имеют небольшие изменения, сделайте следующее:

  1. Проверьте, что вы сделали локально
  2. Регистрация мини-однострочного изменения во 2-м коммите
  3. Перейти в GIT войти в черепаху Git
  4. Выберите два коммита, щелкните правой кнопкой мыши и выберите «объединить в один коммит»

Новый коммит теперь будет правильно отображать переименования файлов ..., что поможет поддерживать правильную историю файлов.

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