Google Drive

Синхронизировать локальные файлы с Google

Синхронизируйте локальные файлы с Google Drive, проверяйте конфликты и выбирайте нужную версию.

Зеркало связывает локальную папку с папкой Google: вы храните Markdown или таблицы на компьютере, а коллеги работают с ними в Google Документах или Таблицах. Синхронизация отправляет локальные изменения и возвращает поддерживаемые правки из Google. При конфликте она предлагает выбрать сторону.

Когда достаточно Markdown-файла в Диске

Google Документы теперь открывают файлы .md напрямую: люди читают и правят их в Документах, а файл остаётся Markdown. Положите файл в Диск командой drive personal files upload или через приложение Google для компьютера, и drive personal sync прочитает его, как любой другой документ. Зеркало не нужно, если правят люди и файл может меняться так, как его записывают Документы.

Зеркало нужно, когда:

  • программа или вы в локальном редакторе продолжаете менять документ, пока люди правят его и в Google. Google позволяет программам менять Markdown-файл только целиком, а Google Документ зеркала принимает небольшие правки рядом с их правками;
  • комментарии не должны попадать в файл. Документы записывают комментарий в сам файл .md, с именем автора и текстом, поэтому он уходит туда же, куда файл, в том числе в git-репозиторий;
  • CSV-файл должен стать Таблицей.

Проверки, на которых это основано, лежат в cli-testing: что программы могут делать с файлом и что правка в Документах записывает в него.

Подключить папку

Войдите в профиль с разрешением Google на запись, затем выберите локальную папку и назначение:

drive personal session start --grant write
drive personal mirrors add ./notes --parent FOLDER_ID
drive personal mirrors list
drive personal mirrors status
drive personal mirrors sync

Замените personal именем подключённого профиля. FOLDER_ID — ID или URL папки Google Drive. Добавление зеркала проверяет назначение и сохраняет связь локально. Первая синхронизация создаёт Google Документы для .md и .markdown и Google Таблицы для .csv, .tsv и .xlsx. Локальные подпапки становятся папками Google. Другие типы файлов учитываются как неподдерживаемые.

mirrors status проверяет локальные файлы и сохранённое состояние без обращения к Google. Он не показывает, изменил ли коллега документ в интернете. mirrors list показывает ID зеркал и папки. Передайте ID зеркала в status или sync, чтобы выбрать одно зеркало; без ID выбраны все зеркала профиля.

Синхронизировать в обе стороны

После редактирования снова запустите mirrors sync. Для Markdown Drive сравнивает блоки документа с последней синхронизацией: изменения разных частей можно объединить, а неизменённый текст сохраняет комментарии Google. Правки ячеек Google возвращаются в CSV или TSV. Локальные изменения XLSX отправляются в Google Таблицы, но правки из Таблиц не записываются обратно в XLSX.

Зеркало таблицы управляет диапазоном, который записало сначала. Оно обновляет его, сохраняя соседние ячейки и посторонние листы. Первая строка становится закреплённым полужирным заголовком. Проверяйте результат, если важны формулы, оформление или структура книги: зеркало не заменяет полную резервную копию документа Google.

Локальные изображения

Локальное изображение, например ![chart](pics/chart.png), остаётся в Документе этим текстом; изображение со ссылкой https:// появляется как картинка. Google Документы вставляют изображение, только скачав его с публичного веб-адреса как анонимный посетитель, поэтому закрытый файл, на компьютере или в вашем Диске, в Документ не попадёт.

Выбрать сторону после конфликта

Если одна часть изменилась с обеих сторон, синхронизация сообщает о конфликте и завершается с частичным результатом. Перед выбором проверьте локальный файл и документ Google:

drive personal mirrors sync MIRROR_ID --keep local
drive personal mirrors sync MIRROR_ID --keep google
drive personal mirrors sync MIRROR_ID --keep both

--keep local выбирает локальное содержимое конфликта. --keep google выбирает содержимое Google, если его можно записать обратно: Markdown, CSV или TSV. Для Markdown --keep both сохраняет обе конфликтующие версии; затем проверьте объединённый текст. Для одних и тех же ячеек Таблицы нельзя сохранить обе версии: выберите локальную или Google. Если Таблица зеркала XLSX изменилась, нужно выбрать --keep local.

Документ с непринятыми предложениями правок отклоняется даже с --keep: сначала примите или отклоните их в Google, затем повторите команду. Правки вне поддерживаемых блоков Markdown может потребоваться проверить вручную.

Удаление и остановка

Удаление локального файла не отправляет его копию Google в корзину. Удаление файла Google не удаляет локальный источник; синхронизация не создаёт его заново без вашего решения. Проверив удалённое, запустите:

drive personal mirrors sync MIRROR_ID --replace

--replace выбирает локальную сторону и заново создаёт отсутствующие файлы Google. Он несовместим с --keep google и --keep both. После переименования или переноса может остаться старая копия Google: проверяйте отчёт об оставшихся копиях, не ожидая переноса удалений между системами.

Чтобы остановить зеркало, не удаляя локальные файлы и файлы Google:

drive personal mirrors remove MIRROR_ID

Зеркало не импортирует назначение в поиск. Для поиска этих файлов Google без подключения отдельно выберите папку через folders add и выполните sync, как описано в импорте и организации. О доступе агента только на чтение см. разрешения.