Git, GitHub и облако
Git работает локально. Это бесплатная программа на вашем компьютере, которая хранит историю версий внутри самой папки, в скрытой папке .git. Включение версионирования ничего не отправляет в интернет и не требует учётной записи: версии хранятся только на этом компьютере — и если диск выйдет из строя или компьютер потеряется, они пропадут вместе с ним.
GitHub — это другое: облачный сервис, который хранит копию репозитория. Именно на GitHub или похожий сервис LightNote отправляет версии при синхронизации. С такой копией в другом месте у вас есть резервная копия, и вы можете работать с теми же заметками на другом компьютере: на одном отправляете, на другом получаете. GitHub бесплатен для личного использования, с неограниченным числом приватных репозиториев, которые видите только вы.
Коротко: Git — это версии на вашем компьютере; удалённый репозиторий — их копия в другом месте: на GitHub, в другом сервисе, в папке OneDrive или Google Drive или на вашем собственном сервере. Пока у папки нет удалённого репозитория, панель версионирования показывает Версии только на этом компьютере. и предлагает ссылку Резервная копия и синхронизация…, о которой рассказано ниже.
Клонирование репозитория
Чтобы работать с уже существующим репозиторием, используйте Файл → Клонировать репозиторий Git... — этот пункт есть также на стартовом экране и в панели контроля версий папки, которая ещё не является репозиторием. Вставьте адрес HTTPS или SSH, который показывает страница репозитория; подойдёт и URL самой страницы, и целиком скопированная команда git clone .... Выберите базовую папку и имя папки: мастер покажет, где она будет создана, и предупредит, если там уже что-то есть. В дополнительных параметрах находятся ветка, поверхностный клон (только последний коммит) и подмодули.
Когда сервер требует вход, LightNote спрашивает в окне: имя пользователя и токен, парольную фразу ключа SSH или подтверждение ключа сервера, которого этот компьютер ещё не видел — тогда окно показывает отпечаток и ссылку на список, опубликованный сервисом, а по умолчанию выбрано не доверять. Ответ уходит прямо в Git, и LightNote его не сохраняет; сохраняет диспетчер учётных данных Git, если он установлен (Git for Windows содержит Git Credential Manager). Доверие к ключу записывает его в ~/.ssh/known_hosts — так же, как сделал бы сам ssh.
Если клонирование не удалось, экран объясняет, что произошло, и предлагает выход: попробовать по HTTPS, когда ключ SSH отклонён; использовать сертификаты Windows, когда корпоративный прокси проверяет HTTPS; загрузить только последний коммит, когда соединение обрывается на полпути; или использовать длинные пути, когда Windows не даёт создать файл. В технических подробностях лежит сообщение Git, а то, что не удалось распознать, можно отправить ИИ. По завершении мастер открывает клонированную папку в этом окне или в новом.
Контроль версий открытой папки
Версионирование включается по желанию для каждого рабочего пространства. Включите его в Инструменты → Рабочее пространство → Настройка рабочего пространства...: LightNote создаст Git-репозиторий (если его ещё нет) и покажет боковую панель версионирования (Ctrl+Shift+G).
В автоматическом режиме LightNote сам сохраняет версии (коммиты) в моменты, выбранные в общих настройках (при сохранении, при закрытии вкладки или окна). Во время сессии в коммит попадает только то, что записал LightNote, — то, что изменили CLI ИИ или другая программа, остаётся ожидающим, чтобы тот, кто изменил, сделал свой коммит; Ctrl+S сразу сохраняет версию, а то, что записывает автосохранение, попадает в коммит раз в 10 минут. При закрытии окна (включено по умолчанию) коммит берёт всё, что изменилось в папке, включая изменения вне LightNote: это страховка в конце сессии. В ручном режиме вы пишете сообщение и сохраняете версию на панели. Индикатор в строке состояния показывает состояние (нет изменений, X изменено…) и по клику открывает меню Git (см. ниже); в папке, где версионирование ещё не включено, — настройки рабочего пространства на странице Интеграции. Можно просмотреть diff каждого файла и восстановить (отменить) несохранённые изменения.
У автоматизации есть 3 уровня для каждой папки (в Настройках рабочего пространства): Вручную (ничего автоматически), Автокоммит (сам сохраняет версии, но не синхронизирует) и Полностью автоматически (коммитит и синхронизирует — push после коммита + периодический pull; требует настроенные учётные данные Git без запроса пароля). Панель показывает строку состояния с ↑ для отправки / ↓ для получения относительно удалённого репозитория, а основная кнопка меняется с коммит на Синхронизировать, когда есть версии для отправки, — это явно показывает, что после сохранения ещё нужно синхронизироваться.
В панели Git и в меню Git дерева есть Добавить (git add) и Восстановить (git restore) для каждого файла, а также единственное Посмотреть изменения, которое открывает экран сравнения. Список панели идёт в естественном порядке путей, а в контекстном меню файла есть также Копировать... и Показать в Проводнике (недоступно для удалённого файла).
Экран сравнения показывает обе версии бок о бок, выровненными: одинаковые места всегда стоят друг напротив друга, и на каждой стороне видны номера строк её файла. Изменённая строка выделяется янтарным, а внутри неё подсвечивается то, что поменялось. Кнопка Единый режим переключает на формат патча, Поменять стороны меняет основу сравнения, а F8 / Shift+F8 переходят от одного изменения к другому.
Меню Git в строке состояния. В папке с версионированием индикатор показывает ветку, а рядом — что осталось синхронизировать (↓ к получению, ↑ к отправке); точка зелёная, когда всё сохранено в версии, янтарная при ожидающих изменениях и красная при файлах с конфликтом. Щелчок открывает меню, которое начинается с полного состояния и предлагает Сохранить версию всего (коммит)… — берёт все изменения в папке, включая сделанные другими программами; если сообщение оставить пустым, оно будет автоматическим, — Открыть панель Git и, при наличии удалённого репозитория, Синхронизировать (получить и отправить), Получить (pull со слиянием), Отправить (push) и Проверить удалённый (fetch). Получение всегда выполняет слияние (merge) и никогда не делает rebase, какой бы ни была настройка Git на компьютере; если при слиянии возник конфликт, отправка не выполняется, а в меню появляется Отменить слияние с конфликтом…. В Автоматических действиях можно сменить уровень автоматизации папки, не открывая настроек. В разделе Дополнительно пункт Выполнить команду git… запускает любую команду в папке репозитория и показывает вывод — без терминала, поэтому команда, которая просит ввода (редактор сообщения, пароль в консоли), не ждёт, а прекращается; для таких команд используйте терминал. Если Git не установлен, щелчок открывает руководство по установке.
Перемещение и переименование. Когда вы перемещаете или переименовываете файл или папку в LightNote (перетаскиванием в дереве, вырезанием и вставкой, переименованием), версия забирает обе половины вместе, и Git записывает переименование. Попадает только то, что уже было под версионированием; новый файл в перемещённой папке ждёт, как и остальные. Действует то же правило, что и для Ctrl+S: если коммит при сохранении выключен, перемещение ждёт следующего коммита. Большие файлы остаются вне версии — см. Большие файлы и ограничения сервисов.
История и полоса изменений
На панели редактора кода и заметки есть две кнопки для версий файла. Сохранить версию записывает файл и сохраняет эту версию: в папке под управлением Git она делает commit только этого файла — то, что другая программа или сессия ИИ изменила в других файлах, в него не попадает, — а вне репозитория сохраняет точку в локальной истории. Если с последней версии ничего не изменилось, она становится серой, а причина видна в подсказке.
Версии открывает список версий открытого файла (тот же раздел боковой панели), а её стрелка предлагает Сохранить версию с сообщением…, Посмотреть изменения с последней версии и Отклонить изменения с последней версии… — последний пункт возвращает файл к последней версии (с Git или без); отклонённый текст остаётся в локальной истории, и Ctrl+Z тоже возвращает его. Список объединяет коммиты и локальные сохранения: LightNote делает одно при каждом Ctrl+S, а при автосохранении — не чаще одного раза в 10 минут на файл, и ещё сохраняет файл таким, каким он был до первой записи, поэтому работает и в папке, которая не является репозиторием. В каждой строке — тема, автор, когда это было и сколько строк прибавилось и убыло; точка отличает ваш коммит, сохранение самого LightNote и коммит из сессии ИИ. Если есть незакоммиченные изменения, они идут первой строкой. Щелчок по версии показывает, что изменилось в ней; открыть версию целиком, сравнить с текущей и сравнить две отмеченные версии — в меню правой кнопки.
Цветная полоса на поле отмечает строки, изменённые с последней версии, — и в редакторе кода, и в заметке, и она следует за тем, что вы набираете: исчезает, когда вы отменяете правку до исходного вида, не дожидаясь сохранения. Последняя версия — это последний коммит на момент, когда вы открыли файл (без Git — файл таким, каким он был при открытии). Сохранение и автоматический коммит её не сдвигают: отметки остаются, пока вы не нажмёте Сохранить версию или не закроете вкладку. Выключить — Вид → Полоса изменений; выключенная, она не просто скрыта: ничего не вычисляется. Щелчок по полосе показывает, как фрагмент выглядел раньше, с кнопками Вернуть этот фрагмент (Ctrl+Z отменяет), Скопировать оригинал и Открыть в сравнении, которая открывает полное сравнение сразу на этой строке. Когда открытый файл меняется вне LightNote — например, в него пишет CLI ИИ, — вкладка без несохранённых правок тихо перезагружается, и полоса показывает, что изменилось; если ваши правки в других местах, обе версии объединяются (Ctrl+Z отменяет); а если обе затронули одни и те же строки, жёлтая полоса вверху вкладки предлагает Сравнить, Взять версию с диска и Оставить мою — пока вы не выберете, автосохранение этот файл не записывает, а отброшенная версия остаётся в локальной истории. Одна оговорка про локальную историю: она хранится по пути, поэтому переименование файла теряет его локальные сохранения — коммиты Git не теряются.
Автор строки и смена ветки
Кто написал эту строку. В меню Git строки состояния пункт Автор строки (blame) выводит в конце строки с курсором, кто её написал, когда и краткое описание версии — например, Ana · 3 дня назад · исправляет итог. Помечается только строка с курсором, и пометка следует за курсором. Строка, которая ещё не вошла ни в одну версию, показывает Без контроля версий; при несохранённых изменениях пометка просит Сохраните, чтобы увидеть автора, потому что строки файла на диске уже не совпадают со строками на экране.
Смена ветки. В том же меню есть подменю Ветка: main (с именем текущей ветки), где перечислены локальные ветки: текущая отмечена, а щелчок по другой переключает на неё (git checkout). Создать ветку… спрашивает имя, проверяет его до вызова Git (без пробелов, без .., не начиная с -) и создаёт ветку от текущей, сразу переходя к работе в ней. Переключение недоступно, пока есть файл с конфликтом или идёт синхронизация.
Резервная копия и синхронизация: GitHub по шагам
Ссылка Резервная копия и синхронизация… на панели — то же, что Добавить удалённый репозиторий… в меню ⋯ панели и в меню Git строки состояния, — открывает экран Резервная копия и синхронизация с тремя путями: GitHub, рекомендуемый; Другой сервис; и Синхронизируемая папка (OneDrive, Google Drive, Dropbox, флешка или сетевая папка). Работают все; GitHub — самый простой способ пользоваться заметками на нескольких компьютерах и самая надёжная резервная копия. Для GitHub:
- Создайте учётную запись на github.com/signup: электронная почта, пароль и имя пользователя; GitHub пришлёт код для подтверждения почты. Тарифа Free достаточно.
- Создайте репозиторий на github.com/new: дайте ему имя (например,
notes), выберите Private и не отмечайте Add a README, .gitignore и лицензию. Он должен быть пустым: с README первая отправка будет отклонена, потому что на GitHub уже окажется история, которая не ваша. - Скопируйте HTTPS-адрес, который показывает страница (вроде
https://github.com/вы/notes.git), и вставьте его в поле Адрес репозитория на экране LightNote. Оставьте отмеченным Отправить версии сейчас и нажмите Подключить. - Войдите в учётную запись: при первой отправке Git откроет окно GitHub, чтобы вы подтвердили доступ в браузере. После этого Windows запомнит доступ — его хранит Git Credential Manager, входящий в Git для Windows, — и входить снова не придётся.
- На другом компьютере установите Git и LightNote и выполните Файл → Клонировать репозиторий Git... с тем же адресом. Дальше Синхронизировать получает то, что отправил другой компьютер, и отправляет то, что вы сделали здесь.
Чтобы не держать синхронизацию в голове, выберите Полностью автоматически в настройках папки: LightNote отправляет после каждого коммита и время от времени получает изменения. Два ограничения, которые стоит знать: GitHub не принимает файлы больше 100 МБ и рекомендует репозитории примерно до 1 ГБ — храните видео и большие файлы вне версионируемой папки. И приватный означает, что репозиторий видите только вы (и те, кого вы пригласите), но содержимое хранится на серверах GitHub: для конфиденциального используйте Защищённый Markdown, который шифруется ещё до того, как покинет компьютер.
На телефоне. Когда удалённый репозиторий подключён, Открыть на телефоне… (в меню ⋯ панели и в меню Git строки состояния) показывает QR-код. В LightNote на телефоне нажмите на название рабочего пространства и выберите Сканировать QR-код с компьютера: репозиторий станет новым рабочим пространством на телефоне. QR-код содержит только адрес, никогда не пароль — если репозиторий приватный, телефон использует свою учётную запись Git для этого сервера или запросит токен доступа. Телефон клонирует по HTTPS: удалённый репозиторий, который является папкой на этом компьютере (OneDrive, ниже), до него не доходит.
Большие файлы и ограничения сервисов
Ограничения. GitHub предупреждает начиная с 50 МБ на файл и отклоняет файлы больше 100 МБ; GitLab, Bitbucket и Azure Repos тоже отклоняют файлы больше 100 МБ. Для всего репозитория GitHub рекомендует примерно до 1 ГБ (не больше 5 ГБ), а бесплатный план Bitbucket даёт 1 ГБ. У синхронизируемой папки (OneDrive, Google Drive) такого потолка нет.
Почему осторожность нужна при коммите. Ограничение действует для каждой версии в истории, а не только для сегодняшних файлов: если файл в 120 МБ попал в версию, отправка отклоняется — и остаётся отклонённой даже после удаления файла, потому что старая версия всё ещё его содержит.
Что делает LightNote. Файл больше 100 МБ остаётся вне любой версии, которую сохраняет приложение, — автоматического коммита, Ctrl+S, Сохранить версию, коммита при закрытии окна, снимка состояния и синхронизации телефона. Он остаётся в папке, а уведомление предлагает Игнорировать в Git (.gitignore). Файл больше 50 МБ попадает в версию с предупреждением в строке состояния. Файл, отмеченный для Git LFS (в репозитории хранится только указатель), не задерживается.
Если отправка уже отклонена (версия сохранена вне LightNote, в терминале), об этом скажет панель Git. Удаление файла не поможет. Если версия ещё не отправлена, выполните reset @{u} в Дополнительно → Выполнить команду git… меню Git в строке состояния: неотправленные версии отменяются, а файлы остаются как есть; добавьте большой файл в .gitignore и сохраните версию снова. Чтобы хранить файл в репозитории, используйте Git LFS (git-lfs.com).
Другие сервисы, OneDrive/Google Drive и свой сервер
Другие сервисы. Git работает одинаково с любым сервисом; меняется только место, где вы создаёте репозиторий. Самые известные: GitLab (gitlab.com, бесплатно, приватные репозитории до 10 ГБ каждый), Bitbucket (bitbucket.org, бесплатно до 5 пользователей, всего 1 ГБ), Azure DevOps (dev.azure.com, от Microsoft, бесплатно до 5 пользователей и с неограниченным числом приватных репозиториев) и Codeberg (codeberg.org, некоммерческий, но только для проектов с открытым кодом — для личных заметок не подходит). Создайте там пустой приватный репозиторий, скопируйте адрес и выберите Другой сервис на экране Резервная копия и синхронизация. Ограничения тарифов со временем меняются: уточняйте их на сайте каждого сервиса.
OneDrive, Google Drive или Dropbox — без новой учётной записи. Выберите Синхронизируемая папка и укажите папку сервиса на этом компьютере (например, C:\Users\вы\OneDrive или G:\Мой диск). LightNote создаст в ней голый репозиторий (bare) — папку Notes.git, где хранятся только версии, без рабочих файлов, — и будет использовать его как удалённый; копированием этой папки займётся облачный сервис. На другом компьютере дождитесь, пока папка появится синхронизированной, и выполните Файл → Клонировать репозиторий Git..., вставив её путь. Тот же вариант подходит для резервной копии на флешке или в сетевой папке.
- Почему голый репозиторий, а не вся папка с заметками внутри OneDrive? Папка
.gitпостоянно меняется, пока вы работаете, и два компьютера, синхронизирующие её через облако, могут её повредить. В голый репозиторий пишет только отправка, и записанное потом уже не меняется. - По одному компьютеру за раз. Прежде чем работать на другом компьютере, дождитесь, пока OneDrive или Drive закончат синхронизацию; отправка с обеих сторон до этого может создать конфликтующие копии. Если такое случается часто, спокойнее перейти на GitHub.
- Если рабочая папка уже в облаке — Windows часто помещает папку «Документы» в OneDrive, — экран предупредит об этом. На одном компьютере OneDrive служит резервной копией; чтобы пользоваться заметками на нескольких, выберите GitHub или уберите папку с заметками из облака и оставьте там только голый репозиторий.
- Можно и без Git: синхронизируйте всю папку с заметками через облачный сервис и оставьте версионирование выключенным — локальная история продолжит сохранять версии каждого файла. Это путь из раздела Ваши заметки на телефоне.
Свой сервер. Чтобы не зависеть ни от одной компании, можно поднять собственный Git-сервер. Gitea и Forgejo лёгкие, у них веб-интерфейс, похожий на GitHub, и они работают в Docker — на домашнем компьютере, Raspberry Pi, NAS или арендованном VPS. Проще всего — сервер с SSH и репозиторий, созданный командой git init --bare. Цена — уход за сервером: установка, обновления и резервные копии; инструкции по установке есть на сайте каждого проекта. Когда сервер готов, адрес репозитория указывается в Другой сервис, как любой другой.
Указатель
Редактирование
- Обзор
- Первые шаги
- Рабочее пространство и окна
- Центр активности: задачи и сообщения
- Редактор кода
- Markdown и вики-ссылки
- Диаграммы (Mermaid)
- Математика и химия (LaTeX)
- Календарь в заметке
- Нумерация и перекрёстные ссылки
- Цитаты и список литературы
- Стандарт оформления работы
- Граф связей
- Таблицы (Parquet, CSV, JSON, Excel)
- Область анализа: сводная таблица и несколько диаграмм
- PDF и изображения
- Изображения: пометки на снимке
- HTML-страницы (.html)
- Печать
- Zip как папка (.zip)
- Блоки (.lnb)
- Задачи (Kanban / Gantt)
- Пользовательская таблица (.lnd)
- Базы (сохранённые запросы по заметкам)
Инструменты
- Поиск по файлам и раздел «Незавершённые»
- Версионирование (упрощённый Git)
- Снимки состояния и резервные копии
- Просмотр изменений (контрольные точки)
- Сравнение файлов (diff)
- Запуск кода (F5)
- Терминал и ИИ-CLI
- ИИ-ассистент для выделенного текста (Ctrl+K / Ctrl+I)
- ИИ на вашем компьютере
- Сеансы ИИ
- Чат с ИИ
- Тестирование HTTP API (.lnh)
- Базы данных (.lnc)
- SSH-подключение (.lns)
- Безопасность: секретная фраза, PIN и защищённый Markdown
- Ежедневные заметки, быстрый захват и трей
- Вернуть старые заметки
- Ваши заметки на телефоне
- Запись аудио (голос, встреча) с транскрипцией ИИ
- Стикеры
- Календарь
- Палитра команд
Автоматизация (ИИ / скрипты)
Справочник