Я использую Git , чтобы помочь делегировать ход проекта, чья кодовая база одновременно разрабатывается растущей командой разработчиков. Он делает почти все, что нам нужно, однако время от времени возникает определенное препятствие, решение которого ускользает от меня: кто-то выкидывает код .
Поначалу этот вопрос звучит довольно обобщенно, но я не знаю, как "классифицировать" эту проблему, и, кроме того, я не уверен в наиболее эффективном способе ее диагностики. Я могу объяснить это, однако, в быстрой игре за игрой.
Play по радио
Настройка: У нас есть три среды: A, B и C. Каждая из них является клоном центрального хранилища.
- Только что исправили функцию. У B & C все еще есть сломанная версия.
- B хочет, чтобы код А внес косметические изменения в исправленную функциональность.
- C - это моя среда, и я выполняю задачи Git.
- Сначала я объединяю B & C, потому что любые конфликты будут легче разрешаться.
- Я запихиваю этот результат, затем перетаскиваю его в A и разрешаю там конфликты.
- Я запихиваю этот результат, затем перетаскиваю его в B & C.
Внезапно решение А ушло. Эта функция, опять же, повсеместно нарушена. У меня создается впечатление, что новый, исправленный код А был по ошибке заменен.
Вопрос № 1: проблема с заказом?
У меня сложилось впечатление, что порядок, в котором разные клоны толкают и тянут, не должен менять результат. Я прав? Или моя проблема связана с порядком толчков и тяг?
Вопрос № 2: Какие инструменты полезны для диагностики этой проблемы?
Даже после использования git diff и представлений дерева журнала GUI, как в gitk или TortoiseGit , решение иногда остается неясным. Существуют ли какие-либо другие инструменты в наборе Git или иным образом, которые указывают, как код перемещается или как определяется предпочтение?