Git Перемещение файлов в папки

Я совершенно новый для git и управления версиями в целом, и у меня вопрос о перемещении файлов. У меня есть мастер-репо на GitHub с 6 исходными файлами.

Я проделал большую работу над проектом, и теперь моя локальная ветвь содержит две папки с источниками в них.

Структура каталогов была похожа:

Учитель:

  • Файл 1
  • Файл 2
  • Файл 3
  • Файл 4
  • Файл 5
  • Файл 6

Где моя локальная ветка теперь выглядит так:

Новая папка 1:

  • Новый файл 1
  • Новый файл 2
  • Новый файл 3

Новая папка 2:

  • Файл 1
  • Файл 2
  • Файл 3
  • Файл 4
  • Файл 5
  • Файл 6

Как перенести мою локальную структуру на главную ветку без потери истории фиксации в старых файлах?

Ответы

Ответ 1

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

Ответ 2

git фактически не отслеживает "перемещения" файлов, он запрашивает его по требованию из аналогичного контента. Итак, просто сделайте перемещение и добавьте/удалите файлы по мере необходимости. (В будущем вы облегчите жизнь инструментам, если вы избежите внесения изменений в контент, а также перемещаете их в одном коммите.)

Затем, чтобы увидеть журнал учета ходов, используйте -M, -C или их варианты для git log. Подобные флаги применяются к другим инструментам, и вы должны прочитать помощь, чтобы понять детали того, что они делают.

Если вы используете git mv в файле, для него просто git rm и git add.

Ответ 3

Другие плакаты верны, однако, если вы хотите подтвердить, что git увидит их как ходы (а не комбинацию delete/create), запустите git status. Вы должны увидеть:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    oldfile.txt -> newFolder/newfile.txt

Ответ 4

В github, если у вас слишком много файлов для перемещения, интересной альтернативой является редактирование файла и изменение его имени на:

folder_to_move_into/file_name

При фиксации файл перемещается в папку. Если папка не существует, она будет создана.