Git нажал на ветку, которая имеет новые ветви от себя - PullRequest
1 голос
/ 04 июня 2019

Я создал новую ветку из master, а затем другую ветку из новой:

master --> A --> B

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

master --> A --> B 
           |         
            ---> C 

Если возможны оба пути, чтобудет ли разница между ними, один путь лучше другого?

Ответы [ 3 ]

3 голосов
/ 04 июня 2019
  • Если в ветке B еще не зафиксировано никаких изменений, вы можете просто внести необходимые исправления в ветку A, а затем объединить ее с веткой B.Это не будет отображать коммит слияния, так как в ветке B не будет коммитов для слияния.
  • Хотя, если в ветке B сделаны коммиты, вы можете создать временную ветку (например, C, hotfix) из ветки A, а затем объединить ее с Aи B, иначе вы можете напрямую делать коммиты на ветку A, а затем сливаться с B.Оба эти способа верны, если исправлений мало, вы можете напрямую зафиксировать на A, в противном случае создайте новую ветку и продолжайте.
1 голос
/ 04 июня 2019

Я предполагаю, что вы

  1. создали первую ветвь, т.е. master.
  2. создали новую ветвь A, выбрав ветку master и сделав заказс помощью команды git checkout -b A
  3. создал другую ветвь B, выбрав ветку A и оформив заказ с помощью команды git checkout -b B

Позже вы захотите изменитькод в ветви A. Да, вы можете нажать изменения, для этого вам нужно выбрать ветку A с помощью команды git git checkout A.Внесите изменения и зафиксируйте ветку A.

Если вы хотите объединить изменения ветки A в ветке B, выполните следующие действия:

  1. Выберитеветвь B с помощью команды git git checkout B
  2. Слияние с веткой A с помощью команды git git merge A

Вы можете найти текущую ветку с помощью команды gitgit branch.

Да, вы можете использовать оба подхода для достижения своей цели

  1. вносить изменения в ветку A и объединяться с веткой B
  2. создать новую ветку из ветви A, внести изменения в новую ветку и объединить с веткой B.

Во втором подходе нам не нужно создавать дополнительную ветку из ветви A.К вашему сведению, если вы объедините ветку A с веткой B, она не удалит ветку A.Ветвь А все еще существует, если только вы не удалите ветвь с помощью команды git git branch -d source-branch.

0 голосов
/ 04 июня 2019

Вы можете внести изменения в ветку A, а затем перебазировать ветку B. Вот информация о том, как сделать ребазинг: https://git -scm.com / книга / а / v2 / Git-Ветвление-перебазирование

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