В индустрии давно используются
системы контроля версий. Они помогают команде совместно работать над кодом, позволяют отследить изменения и при необходимости откатиться до рабочей версии.
Помимо кода там можно хранить конфигурации и манифесты, спецификации и документацию. Короче, Всё-as-Code.
Первая такая система возникла аж в 1972 в
Bell Labs. Программа
SCCS отслеживала локальные изменения файлов.
В 1986 появилась централизованная система -
CVS, там уже использовался центральный репозиторий и клиент-серверное взаимодействие. Теперь уже несколько пользователей могли работать с единой кодовой базой.
В начале 2000-х вышла
SVN, как преемник CVS, и стала фактическим стандартом на несколько лет. Сейчас это
Apache Subversion, и она до сих пор используется в некоторых старых проектах.
В 2005 создатель Linux
Линус Торвальдс представил
третье поколение подобных систем -
Git, который и по сей день является самым популярным инструментом для контроля верисий. В том же году появились аналоги -
Mercurial, тоже довольно популярный, и
Bazaar, но Git всех обогнал. Вот тут можно
почитать.
И вот мы уже третий десяток лет работаем с Git, вот таким он оказался универсальным и удобным. Понятное дело, что прогресс продолжается. Есть экспериментальные и альтернативные системы нового поколения, но они остаются нишевыми.
Однако, энтузиасты усовершенствуют даже Git. Есть такой проект -
GitButler. Это Git-клиент, созданный
Scott Chacon, сооснователем
GitHub. Проект
привлёк $17M от фонда
a16z.
Вот что они пишут про возможности:
▪️
Параллельные ветки - можно работать над разными задачами в одном рабочем пространстве без переключения контекста
▪️
Стековые ветки - это зависимые друг от друга ветки (
тут подробнее)
▪️
Бесконечное Undo - снэпшоты перед каждой операцией позволяют откатиться без потерь
▪️Коммитами можно жонглировать как угодно даже после пуша в удаленный репозиторий
▪️ИИ-помощник для названий веток, коммитов и описаний PR
▪️Интеграция с GitHub и GitLab
Опенсорсно. Есть десктопная и консольная версии.
#tools #git