Зафиксируйте несколько веток одновременно с помощью git - PullRequest
16 голосов
/ 26 декабря 2010

У меня есть две ветви A и B в проекте, над которым я работаю. B отличается от A одним коммитом, который является частью кода, полностью независимым от того, над чем я работаю в течение следующего времени (иначе у меня будет много коммитов, которые я хочу передать как в ветку A, так и в B).

Есть ли способ в git, что я могу зафиксировать как ветку A, так и ветку B одновременно, без необходимости фиксировать его в одной ветке, извлекать другую и пытаться выбрать коммит (ы).

Ответы [ 2 ]

7 голосов
/ 26 декабря 2010

Вы могли бы:

  • сделайте все ваши коммиты на A
  • rebase B поверх A (если вы еще не нажали B, то есть)

Таким образом, B будет включать в себя все коммиты с A, плюс его единственный коммит.


Если у вас есть общий доступ B (отправленный в общее удаленное репо), идея состоит в том, чтобы добавить любой коммит, сделанный на A, к B (то есть "поверх B).

Простейшим способом будет слияние A с B, если вы не возражаете против того, чтобы на B был только один коммит, представляющий все коммиты с A.
Я бы предпочел, чтобы любое решение, включающее сбор вишни, означало бы различный SHA1 для каждого коммита, воссозданного на B, что усложнило бы любое будущее слияние до A (потому что Git проделал бы длинный путь, чтобы найти общего предка )

4 голосов
/ 30 августа 2013

функция выбора вишни - лучший способ сделать это, проверьте ответ на

Git: фиксация в нескольких ветвях одновременно

...