Автоматически сохранять локальные файлы на GitHub

Java GitHub

предисловие

Только лысая голова может стать сильнее.

Текст был включен в мою избранную статью на GitHub, Welcome Star.:GitHub.com/Zhongf UC очень…

В этой статье в основном говорится о том, какАвтоматически сохранять локальные файлы на GitHub

Некоторые могут задаться вопросом, почему я сохраняю локальные файлы на GitHub? На самом деле у меня есть только одна причина: я не знаю, почему мойTyporaИногда возникает ситуация невосприимчивости (прямое зависание), что может привести к потере контента, который был написан в течение длительного времени.

Эгг тоже планировал написать статью некоторое время назад, я видел, как он две недели писал статью, и однажды он сказал мне:TyporaФайл битый, как исправить.

В итоге он потерял две недели писательства.

Некоторые люди могут увидеть это и сказать:Кто позволяет вам не использовать продукт, автоматически синхронизироваться с облаком, использовать облачные заметки, если есть такие вещи??

Это тоже разумно, но Typora действительно проста в использовании (не только Typora, есть еще много полезных продуктов, поддерживающих только локальную, без функции синхронизации с облаком).

Итак, я планирую регулярно загружать контент Typora на Github, чтобы избежать ситуации с яйцами.

Компьютерная среда: Mac 10.15.2

этоначинаястатья, вы все должны бытьGit+CrontabВводный урок просто супер!

1. Почему GitHub?

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

Если вы подписаны на GitHub, вы знаете: GitHub предоставляет намБесплатный частный репозиторий(Раньше это был публичный репозиторий).

Таким образом, мы можем поместить контент, который мы не хотим публиковать, в частный репозиторий.

Есть две причины, по которым я синхронизирую свои локальные файлы с GitHub:

  1. GitHub теперь поддерживает приватные репозитории
  2. Git как программист знает немного, и это действительно удобно.

Вторые руки

Прежде чем мы начнем, мы можем предположить, что если вы хотите регулярно сохранять локально на GitHub, точки знаний, вероятно, следующие:

  1. Немного знать о GitHub (иметь собственную учетную запись GitHub, создать приватный репозиторий)
  2. Немного знать команды Git (в среде Git)
  3. Немного знаком с Shell (скрипт с синхронизацией выполняет загрузку команды Git)

2.1 Создайте частный репозиторий

Как зарегистрироваться на GitHub и создать приватный репозиторий на GitHub, я не буду здесь вдаваться в подробности. Просто щелкните мышью, и все готово

2.2 Загрузить локальные файлы в репозиторий GitHub

Прежде всего, я хочу использовать свой каталог заметок в качестве репозитория, которым может управлять Git.Моя папка называетсяmarkdown

Поэтому я превратил каталог уценки в репозиторий, которым может управлять Git.

Сначала попробуйте посмотреть, сможете ли вы отправить локальный файл на GitHub, поэтому давайте сначалаaddнемного

потомcommitнемного

Перед пушем нам нужно посмотреть, связана ли наша машина с репозиторием GitHub (обычно не в первый раз) Во-первых, нам нужно создать SSH-ключ. Таким образом, мы можем выполнить

ssh-keygen -t rsa -C "youremail@example.com"  --(引号的是自己的账号邮箱)

В течение периода мы просто нажимаем Enter до упора.После выполнения мы можем перейти в домашнюю директорию пользователя, чтобы найти.sshсодержание

идти с.sshкаталог, чтобы найти файл для открытого ключаid_rsa.pub

Просто скопируйте информацию об открытом ключе на GitHub и скопируйте соответствующий контент. Соответствующий адрес GitHub:GitHub.com/settings/can…

Затем мы связываем локальный репозиторий с репозиторием GitHub:

git remote add origin git@github.com:ZhongFuCheng3y/markdown.git

После ассоциации мы можем отправить локальный склад на удаленный склад.

git push -u origin master

После выполнения вы можете обнаружить, что что-то пошло не так. Пуш не может подняться, ошибка следующая:

Нам нужно сначала синхронизировать readme удаленного хранилища с локальным хранилищем, используя команду:

git pull --rebase origin master

После этого мы видим, что readme удаленного хранилища синхронизировался с локальным:

Затем мы выполняем команду push, чтобы отправить локальный файл на удаленное хранилище:

git push -u origin master

Перейдите в репозиторий GitHub, и вы увидите, что локальные файлы были синхронизированы с GitHub:

2.3 Напишите сценарии для автоматического планирования загрузки

Сначала пишем файл скрипта, этот скрипт очень простой, содержание следующее:

#!/bin/bash
cd /Users/3y/markdown
git add .
git commit -m "java3y auto save"
git push -u origin master

На самом деле команда выше написана заново, и тогда у нас есть этот скрипт. Я назвал этот скриптautoSave.sh.

Далее добавляем разрешения этому скрипту (для удобства я простоchmod 777)

После того, как у нас есть сценарий, мы можем поместить его вcrontabВыполнить на Mac, использовать на MaccrontabОчень удобно. Нам нужно запомнить только две команды:

crontab -e    --编辑crontab
crontab -l    --查看crontab的命令

хорошо, так что мы можем написать команду crontab. Здесь все очень просто, если мы немного понимаемcron表达式Ничего страшного, неважно, что ты не понимаешь, Baidu: "cron онлайн генератор"Вы можете звонить в любое время, когда захотите.

Поэтому я написал следующее выражение cron:

* * * * * /Users/3y/autoSave.sh > ~/b.txt 2>&1 &

После окончания выполняемcrontab -lЯ обнаружил, что эта команда снова находится в crontab:

Объясните эту команду:

  • * * * * *Пометить, что эту строку команды нужно выполнять каждую минуту
  • /Users/3y/autoSave.shОтметить местоположение моего скрипта (необходимо использовать здесьабсолютный путь)
  • > ~/b.txt 2>&1 &Введите результат выполнения скрипта вb.txtв файле

Заканчивать! Мы видим, что содержимое локального файла загружается на GitHub каждую минуту.

После отладки мы можем вывести лог на/dev/null

2.3.1 Потенциальные ямы, с которыми вы можете столкнуться

Когда я впервые записал команду в crontab, я не распечатал результат выполнения. Я обнаружил, что вызов не был успешным, и потребовалось много времени, чтобы выяснить это (я подозревал, что проблема с моим компьютером crontab)...

Я также написал еще один скрипт в то время, чтобы увидеть, есть ли какие-либо проблемы с моим crontab, а затем позжеталантзаписать результат выполнения в файл

  • Независимо от того, выполняется ли программа или сценарий, обязательно записывайте в журнал при написании

Я также столкнулся со странными ямами в этот период, я перечисляю их здесь, я надеюсь, что последующие люди увидят мою статью и решат подобные проблемы:

  1. После написания скрипта не забудьте добавитьисполняемыйразрешение
  2. При сохранении crontab столкнитесь"/usr/bin/vi" exited with status 1, можно попробовать убить кронтаб, а потом перезапустить. или в.zshrcДобавить кexport EDITOR=vim
  3. Если вы встретите на выходе результатOperation not permitted, добавить iTerm с полным доступом к диску
    1. Откройте Системные настройки Mac> Безопасность и конфиденциальность> Конфиденциальность> Полный доступ к диску, добавьте iTerm и проверьте его.
    2. свойства файла с@, не помещайте скрипты и папки вDownloadВ каталоге у Mac будут странные проблемы с правами доступа при выполнении crontab.

2.4 Команды, используемые на этот раз

служба кронтаб:

开启:sudo /usr/sbin/cron start
重启:sudo /usr/sbin/cron restart
停止:sudo /usr/sbin/cron stop

编写crontab:crontab -e
查看crontab:crontab -l

Убейте процесс:

kill -9 pid

Команды, связанные с Git:

参考廖雪峰Git教程撸一下就可以了:
https://www.liaoxuefeng.com/wiki/896043488029600

Наконец

В этой статье в основном используетсяMacЧтобы объяснить, как автоматически синхронизировать локальные файлы с GitHub, многие студенты подумают:Брат, я использую Windows, скажи мне, в чем польза Mac?

То, чего может достичь Mac, может достичь и Windows, но может быть небольшая разница в способах и средствах, которыми заинтересованные студенты могут заняться.

Прежде чем я написал эту статью, я не знал, что crontab Mac столкнется с таким количеством проблем, и мне потребовалось много времени, чтобы решить их. Я тоже не знаю этих вопросов. Но мы можем найти решение, найти решение, и, в конце концов, это можно сделать.

может ты увидишь моюТерминалКрасочный, я используюiTerm+一系列插件состоящий из (Mac), учащиеся, которым нужен соответствующий учебник, могут ответить под общедоступной учетной записью "инструмент" получить

Учащимся, прочитавшим эту статью, может быть, что сказать, потому что crontab + скрипт может дополнить ряд интересных вещей,Не стесняйтесь оставлять сообщение в области комментариев, какие интересные вещи вы сделали с crontab.?

Использованная литература:

Эта книга была включена в мои избранные статьи на GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…

рад вывестигалантерейные товарыОбщедоступный номер технологии Java:Java3y. В публичном аккаунтеБолее 300 оригинальных статейТехнические статьи, обширные видеоресурсы, красивые карты мозга,Следуйте, чтобы получить его!

Большое спасиботалантМы можем видеть здесь, если эта статья хорошо написана, я чувствую себя "три криво"что-тоеслипопросить лайк Пожалуйста, следите за ️ поделитесь пожалуйста 👥 Спросите сообщение 💬Это правда для меняочень полезно! ! !

Творить не легко Ваша поддержка и признание - самая большая мотивация для моего творчества Увидимся в следующей статье!