Как "разбить" файлы с помощью git

Если мне нужно было выполнить следующий файл в ветке development:

# file.rb

class Code
 def methodA
  'aA1'
 end
 def methodB
  'bB2'
 end
end

но в моей ветке master я хотел разделить методы на разные файлы:

# in file.rb
class Code
  def methodA
    'aA1'
  end
end

# in extra.rb
class Code
  def methodB
    'bB2'
  end
end

Я мог бы просто создать файл в разработке, затем проверить на master, переустановить и разделить файл вручную, но возможно ли это настроить, чтобы при создании изменяется на development, он будет перенесен в правую "часть" файла на master?

Ответ 1

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

И как проиллюстрировать этот недавний поток (в этом месяце: май 2009 г.), Git пока не совсем. Это может работать для больших файлов с небольшой частью в нем, разделенной на другой файл, но для небольших файлов содержимое выглядит "слишком разным" для Git детектора переименования для получения изменений.

Так что rebase 'master' поверх 'development' может работать, если вы не публиковали (push) 'master', поскольку был создан "development", потому что операция (rebase) перепишет SHA-1 коммитов на ветку 'master' (поскольку они переигрываются поверх коммитов ветки development)

Как я описал в rebase vs .merge, если ваша ветка развития не "слишком далеко" (с точки зрения модификаций от мастера, другой стратегией было бы перераспределение развитие на вершине мастера, создание раскола, а затем объединение развития обратно в мастер (ускоренное слияние в этой точке)