Перемещение файлов в другую ветвь, не являющуюся главной, и объединение обеих ветвей в master

#git

#git

Вопрос:

В моей рабочей ветке ‘A’ (не ведущая) У меня есть файлы, пути root / folder1 /a, root / folder2 / b, root / folder3 / c. Я понял, что эти файлы должны быть частью другой рабочей ветки «B».

  1. Я добавил эти файлы в ветку ‘B’, переместил на удаленный и объединил ‘B’ с Master. Этот шаг был простым и прошел хорошо.
  2. На ‘A’ мне нужно удалить те же файлы, перебазировать ‘A’ с последним master, нажать на remote и объединить с master. В этой последовательности шагов (‘2’) я ошибся в перебазировании с основной частью, что привело к окончательному слиянию с основным удалением трех файлов.

a. Есть ли что-то конкретное, что я должен был иметь в виду для этой последовательности шагов (‘2’)?

б. Какой простой способ решить эту проблему. Обратите внимание, что слияние с «master» выполнено, и у master теперь нет трех файлов. Очевидно, что один из способов — повторить ‘1’ (создать новую ветку, добавить файлы и объединить с master). Мне было интересно, есть ли более чистый способ сделать это.

Комментарии:

1. Было бы очень полезно перестать думать о ветке как о содержащей файлы. Вся идея о том, что файлы находятся «в» ветке или могут быть «частью» ветки, является ложной ментальной картиной. Нужно представить задачи Git с точки зрения того, что такое Git и что он делает.

2. Тем не менее, для перезаписи истории на основе пути вам понадобится что-то вроде этого: github.com/newren/git-filter-repo