В настоящее время я работаю в компании, которая использует VSTS для управления git-кодом. «Рекомендованный» для Microsoft способ объединения веток - это «объединение в сквош», означающее, что все коммиты для этой ветки будут объединены в один новый коммит, включающий все изменения.
Проблема в том, что если я сделаю некоторые изменения в одной ветви для одного элемента журнала невыполненных работ, то сразу же захочу начать вносить изменения в другой ветви для другого элемента журнала невыполненных работ, и эти изменения зависят от набора изменений первой ветви?
Я могу создать ветку для этого элемента журнала и основать ее на первой ветке. Все идет нормально. Тем не менее, когда приходит время создать запрос на извлечение для меня второй ветви, первая ветвь уже была объединена с главной, и, поскольку это было сделано как слияние в виде сквоша, git выдает кучу конфликтов. Это потому, что git не видит исходные коммиты, на которых основана вторая ветвь, он просто видит одно большое слияние сквоша, и поэтому, чтобы объединить вторую ветвь с мастером, он пытается воспроизвести все коммиты первой ветки в Вершина сквоша сливается, вызывая множество конфликтов.
Итак, мой вопрос: есть ли способ обойти это (кроме того, что никогда не основывать одну ветку функций на другой, что ограничивает мой рабочий процесс), или объединение в сквош просто нарушает алгоритм объединения git?
feature1
мастером, а затем захотите слитьсяfeature2
позже. В таком случае, не приведет ли первый подход к конфликтам, поскольку git попытается повторно применитьfeature1
коммиты поверх сжатого коммита, тогда как второй позволит git определить, что эти коммиты не нужно объединять?