Я давно работаю удалённо и постоянно переключаюсь между домашним ПК и ноутбуком — для меня это обычный рабочий процесс. Мне неважно, с какого устройства работать, если соблюдены всего пару важных условий.
Самое главное — всегда иметь актуальные файлы проектов под рукой. До этого все мои попытки организовать удобную синхронизацию были неидеальны. Но с Git этот вопрос наконец перестал быть головной болью.
Почему я выбрал Git для личной синхронизации файлов?
Конечно, есть и другие варианты: сетевые папки, ssh, rsync — что угодно. Но почему именно Git стал для меня оптимальным решением?
Дело в том, что с Git я давно на ты: пользуюсь им каждый день, настроил под себя и даже понимаю, как он устроен изнутри. Git — давно стандарт для работы с версиями, под него есть масса удобных инструментов и утилит. Пусть кажется, что всё сложно — на самом деле он идеально справляется с задачей синхронизации.
Плюс, мне важно видеть историю изменений: так проще отслеживать, что было сделано, и при случае легко откатиться назад. С Git это автоматически превращается ещё и в отличное резервное копирование. А если его можно использовать, чтобы быстро синхронизироваться между устройствами — это вообще находка!
Иногда ради простого обмена файлами я загружаю их в Google Drive, но облако бывает нестабильным и зачастую процесс отнимает намного больше времени. А использование флешек и внешних дисков — лишние хлопоты ради элементарной задачи.
Почему я отказался от GitHub?
Многие просто создают репозиторий на GitHub — да, удобно, сервис всегда под рукой, достаточно лишь интернета.
Но есть пара моментов, которые меня отталкивают. Во-первых, даже у крупных сервисов случаются сбои и падения. Во-вторых, мне не по душе идея хранить личные и рабочие данные у стороннего провайдера — а вдруг случайно отправлю в репозиторий пароль или ещё какой-нибудь секрет?
Да, можно сделать репозиторий приватным, но зачем вообще приглашать третью сторону? Я не использую совместную разработку и таск-менеджмент GitHub, мне этот функционал просто не нужен. Всё можно сделать проще и надёжнее.
Как синхронизировать файлы с помощью Git
Решение оказалось на удивление простым: нужен только локальный Git. Никаких облаков, просто синхронизация по домашней сети — быстро, безопасно и без «танцев с бубном».
Вся настройка занимает буквально минуты, а чуть позже процесс вообще станет привычной рутиной.
Включаем удалённый доступ по SSH
Для начала нужно организовать SSH-доступ к одному из компьютеров, который станет «главным» для репозитория. В macOS эта функция называется «Удалённый вход», в других системах — свои названия, но суть не меняется. Всё просто: настроить достаточно только на том устройстве, где будет лежать ваш репозиторий.
Теперь можно подключаться к этому компьютеру через командную строку с помощью одной простой команды:
Назначаем статический IP-адрес
Этот шаг зависит от вашей домашней сети. Если у вас уже настроен свой DNS, можно пропустить. Я же пошёл простым путём: просто назначил постоянный IP вручную. Это легко делается через панель управления роутером — понадобится буквально пара кликов.
Главное — чтобы постоянный адрес был у хост-машины. Другие компьютеры можно тоже прописать, если хочется полной стабильности.
Генерируем SSH-ключи
Чтобы каждый раз не вводить логин и пароль, советую сразу создать SSH-ключ для каждого клиента. Это делается один раз, и синхронизация потом будет работать без лишних вопросов.
Команда для генерации ключа — ssh-keygen:
Укажите имя для файла и, если хотите, задайте пароль для большей безопасности. После генерации нужно отправить публичный ключ на сервер вот так:
После чего проверьте, что соединение работает корректно:
Создаём «голый» репозиторий
Этот способ надёжнее и проще всего в настройке. На главном компьютере создайте отдельную папку (желательно не перемещать её в будущем). Затем выполните:
В «голом» репозитории все служебные файлы Git (HEAD, config и др.) лежат прямо в созданной папке, а не в поддиректории .git, как обычно.
Описание ниже подходит для создания нового репозитория. Если у вас уже есть проект — обратите внимание на команду git clone --bare.
Клонируем репозиторий на все устройства
На каждом компьютере, с которым вы работаете, переходите в нужную папку и запускайте клонирование. На хостовой машине можно указывать обычный путь на диске. Например:
На остальных — понадобится логин и IP-адрес компьютера, где репозиторий.
В моём случае получилось так:
После этого репозиторий появится на компьютере, как будто бы вы подключились к GitHub — всё настолько же просто.
Работаем, как привыкли: add, commit, push!
Дальше всё идёт по знакомому сценарию: правите файлы, сохраняете результат и время от времени коммитите изменения через git commit.
Обязательно делайте git push после работы или когда собираетесь уйти из-за компьютера. Начав день на другом устройстве, первым делом выполните git pull — так все изменения тут же окажутся на месте.
Хотите больше — подпишитесь: выжимки и лайфхаки по быстрой работе с Git!
Хотите больше — подпишитесь: выжимки и лайфхаки по быстрой работе с Git!
Подписываясь, вы получаете наши лучшие советы и полезные рассылки. Отписаться можно в любой момент.
Естественно, если весь день вы работаете только на одном компьютере, можно не торопиться с синхронизацией. Но если пустить это в привычку — ваши файлы всегда будут актуальны и доступны где угодно.
А для полного удобства можно автоматизировать git-задачи с помощью cron — синхронизация будет идти сама, а вы вообще забудете о том, что когда-то постоянно переносили файлы вручную. Особенно круто это работает, если компьютер не выключается и рабочий ритм довольно стабильный.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru