Отличный способ сделать это в git - это «перебазировать» ваши изменения. Что это делает, вместо того, чтобы объединять обновления из «их» репо в ваши изменения, он перематывает (отменяет) все ваши изменения, помещает их изменения в вашу ветку (чтобы все было хорошо и линейно), а затем «воспроизводит» ваши изменения на вершине их.
Это приводит к тому, что ваши изменения всегда представляют собой серию «патчей» поверх репо, за которым вы следите (вместо того, чтобы ваши изменения чередовались с их изменениями при перемещении назад по истории).