← Все записи
← →

Кто откатывает мои коммиты: геймдизайнер, который нажимал «Нет»

2013

Steam Defense был моим первым проектом на git. До этого я работал с SVN, а там с ветками было не принято. Поэтому и здесь все коммитили в одну ветку, master.

Конфиги у нас были на C#, я уже писал, как они были устроены. Я тоже их правил: добавлял новые типы и параметры. И вот замечаю, что мои изменения откатываются. Один раз, второй. Смотрю историю: откатывает геймдизайнер.

Подхожу к нему и спрашиваю, зачем. Он удивляется: ничего не откатываю, работаю, пишу конфиги.

Тогда я просто встал у него за спиной и стал смотреть, как он работает. Он пишет код в конфиге и нажимает «Обновить». Подтягиваются свежие изменения, в том числе мои, в том числе в файле, который у него сейчас открыт. Но файл не сохранён, его версия живёт в памяти редактора, а автосохранения тогда не было. Редактор спрашивает: файл изменился, перезагрузить? Он отвечает «Нет» и продолжает работать со своей старой версией. Потом сохраняет и пушит поверх. Git не видит никакого конфликта: это обычный новый коммит, в котором моих строк просто нет.

Так он стирал мои правки, вообще не понимая, что происходит. И в этом не было его вины: диалог спрашивает про файл, а не про чужую работу, и «Нет» выглядит как самый безопасный ответ.

Что я из этого вынес: если изменения пропадают, а все говорят, что ничего не делали, не спорь — постой за спиной и посмотри, как человек работает. А общая ветка для всех прощает такие ошибки хуже, чем отдельные ветки и ревью перед слиянием.