git merge одной ветви затронут / конфликтует с изменениями из не вовлеченной ветви - PullRequest
0 голосов
/ 18 марта 2019

для начала, я должен сказать, что я новичок в использовании Git или его расширенных возможностей в плане отслеживания и управления изменениями в проекте, особенно в области разработки программного обеспечения, в которой он специализируется. Однако я также могу сказать, что у меня достаточно понимания его основ и основ, таких как init, clone, push, pull, merge и разрешение конфликтов.

также добавим, что мы работаем над проектом WinForms C # и отслеживаются Git с помощью Axosoft, LLC. GitKraken Application.

Таким образом, вместо создания ветки для определенных модулей, мы вместо этого создаем ветку для конкретных разработчиков, так как они единолично управляют ее разработкой. Подводя итог этого:

branch marq, ja, ranz, kim и kiian - все разработчики, работающие над определенными модулями. ветвь development - это ветвь, где мы объединяем стабильные коды, которые все готовы к тестированию.

однако, чтобы уменьшить путаницу, потому что я не очень хорошо пишу свои проблемы. давайте сосредоточимся на ветви development, ja и kiian. и что я управляю как веткой kiian, так и веткой development на моем локальном компьютере, что в основном означает, что я регулярно переключаюсь на ветку development и извлекаю изменения из разных ветвей.

несколько дней назад, ветвь kiian объединила свои изменения в ветку development, ветвь kiian не извлекла объединенные изменения, хранящиеся в ветке development, после этого, поскольку нет никаких предыдущих изменений, которые необходимо загрузить в его локальное хранилище. до сегодняшнего дня в ветке kiian произошли 15 + 19 изменений до ее последнего слияния с веткой development.

сегодня филиал ja решил объединить свои изменения с филиалом development. поэтому я переключил ветви с ветви kiian на ветку development (обратите внимание, что новые изменения 15 + 19 еще не были зафиксированы в локальном репозитории филиала kiian). Мне удалось успешно переключить ветки, хотя я думаю, что не должен был этого делать (что касается того, что я понимаю, мне следует разрешить, если не будут приняты все ожидающие изменения).

Теперь произошло то, что, когда я слил ветку ja в ветку development, все ожидающие изменения (15 + 19), которые предположительно все еще находились в ветке kiian, были поставлены на активность слияния ветки ja и development. это также вызвало конфликт слияния для 3 файлов, измененных веткой kiian, которые еще предстоит зафиксировать. те же самые изменения (15 + 19) также были спрятаны на ветке kiian, которую мне пришлось снова вытащить.

теперь мой вопрос, чтобы подвести итог этому, как получается, что изменения в ветви kiian, которые еще даже не зафиксированы, были вовлечены в слияние ветви development и ja, которой якобы не было связан с?

те же самые изменения еще не были готовы и не должны быть объединены, но по какой-то причине были объединены, и точная копия изменений этой ветви kiian была спрятана.

ниже - скриншот нашего графика:

enter image description here

1 Ответ

2 голосов
/ 18 марта 2019

Когда вы меняете ветку, все локальные изменения, которые не были зафиксированы, сохраняются как есть в вашей песочнице, если они относятся к файлам, которые совпадают между веткой, в которой вы находились, и веткой, в которую вы переключаетесь. Итак, работа в вашей песочнице началась, когда вы переключили ветку. Я ожидаю, что конфликты, которые вы видите, происходят от таких локальных изменений. По сути, изменения не относятся к конкретной ветви, пока вы их не зафиксировали, они просто находятся в вашей песочнице.

...