Слияние веток в зависимости друг от друга - PullRequest
0 голосов
/ 24 мая 2019

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

У меня много задач, некоторые из них зависят от других задач, поэтому, скажем, у нас есть:

  • задача 1: добавить таблицу (требуется объединение)
  • задача 2: используя таблицу из задачи 1, добавить кнопку, чтобы добавить что-либо, используя форму (требуется объединение)
  • Задание 3: использование предыдущих решений, но после добавления чего-либо в таблицу вы можете щелкнуть по ней, чтобы увидеть детали (требуется объединение)

Итак, как вы видите, задача 1 должна быть объединена с главной, задача 2 зависит от задачи 1, поэтому вы должны включить ее, также требуется объединение, и задача 3 требует как задачи 1, так и 2.

И, как вы знаете, проверка кода занимает много времени, поэтому я не хочу просто сидеть и ждать, но я хочу продолжить выполнение задачи 2, пока выполняется задача 1, а затем работать над задачей 3, пока задача 2 выполняется. рассмотрение.

Есть ли способ, как это сделать? Я использую VS Code с расширением Gitlens, также использую терминал для push.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 24 мая 2019

Монтаж веток один сверху другого? Это было бы стандартным способом, единственное, что нужно помнить, это то, что когда вы «обновляете», вы должны быть более осторожными. Например, ветвь task2 начинается с ветки task1, пока задача еще находится в разработке. Через некоторое время task1 получил пару коммитов. Для того чтобы задача2 могла их получить:

git checkout task2
git rebase task1

Этого должно быть достаточно, чтобы переместить задачу 2 поверх новой позиции задачи 1 ... но все становится намного сложнее, когда задача 1 "перемещается" (как, например, задача 1 перебазируется). В этом контексте вы не можете просто «перебазировать», потому что если вы попытаетесь это сделать, git попытается перебазировать «предыдущие» ревизии из task1 поверх новой позиции track1. Может быть очень просто предположить, что если task1 остался прежним, то вы получите некоторые сообщения от git о том, что патч применен и что вы можете сказать git пропустить их .... но реальная вещь, о которой следует помнить в том, что на самом деле новая ветвь task1 может очень отличаться от старой задачи1, с которой вы начали работать ... и учитывая, что задача1 не является частью разработки задачи2 (как, например, две независимые разработки) ), то вам придется перебазировать задачу 2 только на новую позицию задачи 1. Итак, вам нужно сделать:

git rebase --onto task1 old-task1-position task2

Таким образом, вы просите git переместиться на новую позицию задачи 1 ветви задача 2, отбрасывая все предыдущие ревизии, которые были частью истории old-task1-position.

Работать таким образом не так уж и сложно, требуется только практика и знание , что происходит .

...