Найти в Дзене
Цифровая Переплавка

🪧 Свобода от GitHub: Почему старый добрый Git без «кузницы» может быть лучше

Оглавление

Сегодня почти каждый разработчик привык, что код хранится на GitHub, GitLab или других популярных git-«кузницах» (forge). Для большинства это стало настолько очевидным, что вопрос «Почему ты не используешь GitHub?» звучит почти как вызов обществу. Но недавно Саймон Татам, автор легендарного SSH-клиента PuTTY, поделился своим видением о том, почему он сознательно избегает популярных сервисов и предпочитает простой и прозрачный Git.

И этот подход стоит рассмотреть подробнее.

🌱 Почему автор предпочитает «чистый Git»?

Большинство разработчиков любят платформы типа GitHub за удобство: можно нажать одну кнопку и сразу отправить pull request. Но что, если я скажу, что почти то же самое можно делать и без GitHub? Именно об этом говорит Татам, утверждая, что никакой особой магии в форжах нет — есть лишь удобные, но далеко не всегда необходимые инструменты.

По сути, pull request — это всего лишь короткое сообщение автору:

«Вот мои изменения, они лежат в репозитории по адресу X, ветка Y. Посмотри, пожалуйста».

Это можно сделать и простым письмом, и сообщением в мессенджере, и даже через Mastodon. Git не зависит от интерфейсов, он универсален и прост.

🧩 Чем плохи форжи вроде GitHub?

Автор приводит несколько аргументов, почему git forge не всегда лучший выбор:

  • 🔒 Вопрос доверия.
    Саймон подчёркивает, что доверяет своему другу, на сервере которого хранится код, больше, чем крупным корпорациям. GitHub сегодня принадлежит Microsoft, GitLab имеет свои правила, которые могут измениться в любой момент. Доверять частным компаниям не всегда безопасно.
  • 🗄️ Тяжеловесность инфраструктуры.
    Запустить простой git-репозиторий и пару веб-страниц через gitweb — дело пяти минут. Поднять собственный GitLab или даже Gitea требует гораздо больше времени, усилий и ресурсов. Стоит ли оно того?
  • 🔑 Проблемы с аккаунтами.
    Каждая новая «кузница» — это новый аккаунт, новые пароли, двухфакторная аутентификация и потенциальные проблемы с безопасностью. Саймон сознательно не хочет создавать лишних сложностей своим пользователям.
  • 📑 Навязанный workflow.
    Когда вы используете платформу вроде GitHub, вам неизбежно навязывают конкретную модель работы. У вас уже не будет выбора в том, какой баг-трекер использовать и как оформлять задачи.
  • 🛑 Особенно не GitHub!
    GitHub — не свободный софт. Перенести проект куда-то ещё вместе с баг-трекером и историей взаимодействий почти невозможно. Автор принципиально против против привязки к одному поставщику (lock-in) и монополий.

🚀 Альтернативы «кузницам»: как работать без GitHub

Сам автор предлагает несколько альтернативных подходов, как отправить изменения:

  • 🥇 Лучшее решение:
    Просто отправить URL-адрес репозитория и имя ветки с исправлениями. Это ничем не хуже pull request, но без привязки к платформе.
  • 📦 Git Bundle:
    Мало кто знает про «git bundle» — компактный бинарный файл, который содержит только изменения относительно родительской ветки. Это удобно и надёжно: один файл, быстрое скачивание, минимальный риск повреждения патча.
  • 🗂️ Текстовые патчи через git format-patch:
    Часто используемый способ, хотя и менее удобный. Не всегда надёжен из-за особенностей работы почтовых клиентов с текстовыми вложениями.
  • 📄 Простой diff-файл через git diff:
    Не содержит метаинформации о коммите (автор, дата, сообщение коммита), поэтому менее предпочтителен.
  • 📧 Самое худшее решение — письма через git send-email:
    Каждый патч отдельным письмом — неудобно, теряется порядок, сложная обработка.

🤔 Моё личное мнение: Почему подход Саймона вдохновляет?

Подход Саймона вдохновляет простотой и честностью. Он показывает, что можно оставаться продуктивным и независимым, не встраиваясь в популярные платформы, если это не нужно. Сегодня мы привыкли думать, что удобство означает централизацию и зависимость от крупных сервисов. Но это ложная дилемма. Git — это инструмент для свободы, и Саймона напоминает нам об этом.

На мой взгляд, подход Саймона особенно ценен тем, кто разрабатывает чувствительные проекты, такие как security-утилиты или софт, установленный на миллионах машин. Отказ от популярного сервиса здесь означает не паранойю, а заботу о безопасности и независимости.

Если вы хотите поэкспериментировать с подходом Саймона, попробуйте создать свой репозиторий и отправлять патчи через git bundle или просто делитесь ссылками на ваши ветки. Вы удивитесь, насколько это просто и эффективно.

🗯️ В заключение: Не бойтесь выбирать собственный путь и помнить, что главное — не модная платформа, а простота и удобство вашей работы. GitHub — это удобно, но далеко не единственно верно.

🔗 Ссылки по теме: