Найти тему

Командная работа

На днях мне задали интересный вопрос - как много программистов работают над одним проектом? Ведь каждый за своим компьютером работает, а изменения, который вносит один, должны оказаться и у других. А если несколько человек вообще один и тот же файл редактировали параллельно? Как потом правки объединить?

Как вы понимаете, решение давно придумано (ещё в 80-х годах). Называется оно «система контроля версий» (далее - СКВ). Слово «версий» в названии потому, что в основе работы таких систем лежит хранение истории всех изменений и каждое изменение имеет номер и называется версией.

Как это работает?

Файлы проекта и вся история их изменений находятся в некотором хранилище. Новый человек подключается к этому хранилищу и скачивает его копию себе. Затем он правит один или несколько файлов и фиксирует изменения в хранилище.

При фиксации СКВ смотрит разницу между тем, что было и тем что стало и сохранят эту разницу под новой версией. То есть вот примерно так: в файле my_text.txt в версии 125 строка 56 стала «hello world», строка 73 удалена, строка 87 добавлена и равна «goodbye».

Таким образом, даже если два человека работали над одним файлом, но с разными строками, то нет проблем собрать из таких кусков общую финальную версию.

А если они умудрились поменять одну и ту же строку, то СКВ не даст второму зафиксировать изменения, а сначала спросит - чей вариант оставить. Так что случайно стереть чужие изменения не получится.

Вот так и работают программисты в команде.

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

Бесплатные СКВ: github.com, gitlab.com, bitbucket.org