Как «разделить» файлы с помощью git - PullRequest
10 голосов
/ 22 мая 2009

Если бы мне понадобился следующий файл в моей разработке ветви:

# 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

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

1 Ответ

4 голосов
/ 22 мая 2009

Если разделение «перенесено на правую» часть файла в «master», это означает, что Git сможет обнаружить разделение.

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

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

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

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