предисловие
GitHub в своем собственном доме увидит их рекорд, если день не отправит записи, отображается день небольшого серого цвета. Навязное-компульсивное расстройство, я прихожу каждый раз, когда вы чувствуете себя некомфортно наблюдаемым, Я помню, как думать, что он подал в чем-то каждый день, бороться, какРуан ИфэнКак Бог, каждый день есть записи о подчинении.
Однако, в конце концов, я человек, и я забуду отправить, когда буду занят, поэтому я задался вопросом, смогу ли я реализовать это на своем сервере Alibaba Cloud (система Linux), настроить cron и настроить команду git для добиться автоматического представления в фиксированной точке каждый день.
Первый шаг: клонировать мой проект
- ssh-клон
Если вы клонировали проект и не знаете, куда идти, вы можете выполнить:
git remote -v
если так:
origin https://github.com/tywei90/git-auto-commit.git (fetch)
origin https://github.com/tywei90/git-auto-commit.git (push)
Тогда это метод https;
если так:
origin git@github.com:tywei90/git-auto-commit.git (fetch)
origin git@github.com:tywei90/git-auto-commit.git (push)
Тогда это путь ssh.
Также легко изменить способ клонирования:
https --> ssh
git remote set-url origin git@github.com:tywei90/git-auto-commit.git
SSH -> HTTPS
git remote set-url origin https://github.com/tywei90/git-auto-commit.git
Шаг 2: Вход без пароля
Для вышеупомянутых двух методов клонирования проектов есть две настройки входа без пароля.
1. Пароль учетной записи бесплатный (клон HTTPS)
cd git-auto-commit/.git
vim config
[credential]
helper = store
2. Открытый ключ и закрытый ключ без входа в систему (клон ssh)
2.1 Генерация открытых и закрытых ключей
Проверьте ключ SSH Machine:
cd ~/.ssh
ls
Если появится запрос: Нет такого файла или каталога, это означает, что вы используете git в первый раз, тогда вручную создайте каталог самостоятельно.
Используйте команду ssh-keygen для генерации ключа ssh, команда выглядит следующим образом:
ssh-keygen -t rsa
После ввода вышеуказанной команды вы можете сгенерировать ключ ssh, нажав Enter, когда встретите его. После создания ключа ssh вы можете просмотреть соответствующие файлы в каталоге ~/.ssh.Вообще говоря, ключ ssh будет содержать два файла, id_rsa и id_rsa.pub, которые представляют собой сгенерированные закрытый ключ и открытый ключ соответственно.
2.2 Скопируйте открытый ключ на свой гитхаб
В каталоге .ssh выполнитеcat id_rsa.pub
Скопируйте все содержимое открытого ключа
Нажмите на аватарку github, в выпадающем меню выберите вариант настройки, в левом меню открывшейся страницы нажмите ключи SSH и GPG, а затем нажмите зеленую кнопку Новый ключ SSH в правом верхнем углу новой страницы. Введите значение заголовка и вставьте скопированное содержимое открытого ключа в поле ввода ключа для отправки.
2.3 Тестовая ссылка на github
Я вижу онлайн, чтобы ввести следующую команду:
ssh –t git@github.com
Затем я сообщу об ошибке ssh: Не удалось разрешить имя хоста \342\200\223t: Имя или служба неизвестны.После поиска решение заключается в выполнении следующей команды:
ssh -t -p 22 git@github.com
ssh git@github.com
вскоре-t
Шаг 3: Установите cron, таймер задачи автоматически отправляется
项目里的add.js是用来修改records.txt的,每次执行会将当前的时间附加到records.txt文件末尾。然后让git自动提交即可。下面关键是cron的设置,对于linux系统不熟悉的我还是花了点时间的,这里直接将cron设置粘贴出来。 выполнить первымcrontab -e
Cron введите редактирование, а затем вставьте следующий код:
00 12 * * * cd /home/git-auto-commit && git pull && /root/.nvm/versions/node/v6.6.0/bin/node add.js && git commit -a -m 'git auto commit' && git push origin master && git log -1 | mail -s "git auto commit successfully!" wty2368@163.com
-
00 12 * * *
Это означает, что следующие команды выполняются в 12:00 каждый день. -
/root/.nvm/versions/node/v6.6.0/bin/node
Это абсолютный путь к двоичному исполняемому файлу узла. Вы не можете напрямую написать команду узла и не распознаете ее. Как узнать свой собственный каталог выполнения узла на самом деле очень просто, выполнитеwhich node
Вот и все. -
'git auto commit'
Это комментарий, который отправляется каждый раз, вы можете воспроизвести его по своему желанию. -
git log -1 | mail -s "git auto commit successfully!" wty2368@163.com
Он заключается в том, чтобы взять последний журнал коммитов git в качестве содержимого электронного письма, «git auto commit успешно!» в качестве заголовка и отправить электронное письмо на адрес wty2368@163.com. Конечно, это необязательно. Я хочу отправлять мне электронное письмо с подтверждением после каждой автоматической отправки. Наблюдая за тем, является ли значение даты в содержании электронной почты текущим временем, мы можем судить об успешной автоматической отправке. Если вы хотите реализовать эту функцию, вам необходимо настроить параметры отправки почты linux, которые будут написаны, когда будет время. Главное, на что следует обратить внимание, это ограничение в 25 портов для почты на сервере Alibaba Cloud, что весьма жалко!
Шаг 4: отправьте заполните запись перед использованием сценариев пакетных оболочек
Вышеуказанные шаги решают ежедневные записи отправки git, но собственная домашняя страница github по умолчанию отображает записи отправки за предыдущий год, так как же составить предыдущие записи? К счастью, время записи на github зависит от времени фиксации, поэтому мы можем изменить время нашего компьютера, а затем выполнить фиксацию. Моя система - centos7, вот только пример. Команды для модификации времени разных версий linux могут быть разными.В интернете много статей под Baidu.
4.1 Измените системное время на конец периода времени, который вы хотите компенсировать.
Например, если вы хотите изменить период времени с 01.01.2018 на 31.01.2018, вам нужно изменить системное время на 31.01.2018. Сценарий выглядит следующим образом:
timedatectl set-time '2018-01-31 13:00:00'
4.2 Войдите в каталог проекта и выполните скрипт цикла
Определите количество дней, которые мы хотим изменить, с 2018-01-01 по 2018-01-31 всего 31 день, мы передаем этот параметр в командной строке.
cd git-auto-commit
screen -d -m -L sh loop.sh 31
здесь,screen -d -m -L
Команды могут выполнять задачи, которые мы выполняем, в фоновом режиме, так что даже выход из соединения с сервером не уничтожает сценарий. Вы можете обновить домашнюю страницу github, чтобы увидеть, стали ли серые области зелеными.
постскриптум
На этом настройка автоматической фиксации github завершена. Посмотрим на результаты:
Затем каждый день в 12:00 вы будете получать следующее электронное письмо:
Добро пожаловать в звезду, чтобы учиться и обмениваться:гитхаб-адрес | мой блог
(над)