Почему происходит откат изменений после выполнения merge request?
Ребят, приветствую. Есть вопросик по поводу командной работы с Git. Работаем с коллегой с одним и тем же проектом. По сути изменяем разные файлы в разных директориях. Недавно стал замечать, что после того, как коллега делает МР в dev из своей локальной - те файлы, что я редактирую откатываются к старым версиям. Почему, на ваш взгляд, это может происходить? Ведь мы работаем с разными файлами и изменения, которые вносит коллега по идее не должны никак влиять на те файлы, что я редактирую. Есть ли у кого-то мысли по этому поводу?
Lynn «Кофеман», разумеется по разному ) local-branch - это абстрактное именование локальных веток для примера. Связано ли то, что коллега не делает pull, с тем что на боевой ветке файлы, которые я изменил откатываются до старых версий?
krosten92, если вы работаете в одной ветке и ветка не защищена от перезаписи (protected branch в гитлабе) то естественно он будет затирать вашу ветку. Обычно разработчики работают каждый в своей ветке, условно TASK-1 и TASK-2, затем мёрджат их в dev/master
Wexter, я же сказал это абстрактное название ветки - я его указал для того, чтобы показать какие команды юзали. И уже пояснил, что у нас разные названия локальных веток. Если не понятно:
Я так понимаю ему ничего не пишется, а pull делать религия не позволяет
Это не религия, а банальная лень и наплевательство на чужой труд.
Скорее всего он делает force push, и тупо перезаписывает историю. Защитите ветку от force push или бейте по рукам.
Lynn «Кофеман», вот как раз в том какая черепашка врёт я пытаюсь разобраться. МР и от меня и от коллеги приняты. Незакрытых нет. Либо я что-то упускаю - либо коллега чего-то не договаривает. Судя по визуальному интерфейсу конфликтов не было. Мутно это всё.
Vitsliputsli, тоже думал, что форсит. Но утверждает, что нет. Пока временным решением сказал, чтобы в обязательном порядке выполнялся git pull origin dev перед git push. А пока входные решил разобраться, ну и заодно проконсультироваться - может кто сталкивался с подобным.
А зачем верить на слово? Откройте журнал git по ветке и проверьте, что действительно происходило, где был merge, а где rebase, или вообще reset.
Если что, это делается так: git reflog show dev