Git фиксирует / объединяет потерянный код, отменяет код других коммитов - PullRequest
0 голосов
/ 20 декабря 2018

Мы только начали использовать Azure Devops и использовали git-репо для управления кодом.У нас есть несколько разработчиков, добавляющих код в репозиторий в течение последних двух недель после миграции, и заметили, что иногда мы получаем коммит, который возвращает файлы в предыдущее состояние.

Например, если разработчик A и B фиксирует код, а затем разработчик C фиксирует, разработчик C получит фиксацию слияния, и в рамках этой фиксации мы увидим, как код из A, B возвращается.

Разработчики делают git Pulls перед фиксацией, поэтому они должны быть в курсе с удаленным до фиксации.

Коммит слияния, который мы видим, что отменяет изменения, называется что-то вроде

Ветвь слияния'Развитие' ххх в развитие

Не могли бы вы помочь мне понять, что является причиной этой проблемы и как лучше решить ее?Есть ли рекомендуемый способ фиксации кода в Visual studio с использованием инструментов git?

Спасибо Амар Сингх

1 Ответ

0 голосов
/ 21 декабря 2018

Спасибо за ответ, торек.Вы правы, что это проблема конфликта слияния.У нас было подозрение, что это связано с проблемой обработки конфликта слияния, прежде чем я задал этот вопрос, но не мог понять, почему в последующем слиянии была показана реверсия.

Итак, вот что происходит в нашем случае:

Dev A, B коммит, а затем Dev C вступает в конфликт слияния.Затем они объединяют изменения, но не выполняют этапы A, B и только вводят их работу. Это приводит к коммиту, который показывает только изменения Dev C, но под капотом git отменил изменения A, B ( это невидимый в этот момент )

Затем Dev D выполняет локальный коммит и git pull.Это приводит к созданию второго коммита («merge commit»).Это помечено как

Ветвь слияния 'развернуть' из ххх в развитие

Когда разработчик D выдвигает два коммита, коммит "ветвь слияния" фактически показывает изменения от A, B возвращаются,На первый взгляд, казалось, что Dev D сделал не то, что нужно, но на самом деле это был Dev C.

Таким образом, сообщение, которое мы будем давать разработчикам, - тщательно обрабатывать конфликты слияния и не ставить под угрозу работу кого-либо.

Спасибо за ваше объяснение.

...