У меня есть папка, которой я хочу публично поделиться с другими, предполагается, что содержимое папки будет обновляться ежедневно: некоторые файлы будут изменены, некоторые удаляются, некоторые добавляются. Я хотел бы использовать для этого GitHub и создать задание cron, которое предполагает обработку обновлений репозитория. Какие команды git мне нужно использовать, если я всегда хочу иметь точную копию локальной папки в моем репозитории git.

Это код, который я планирую использовать, но у меня есть сомнения по поводу локально удаленных файлов (закрывает он их или нет) 🤷‍♂️:

cd ~/myfolder
git init
git add .
git commit -a -m "$current_date"

Спасибо.

answer

Этот код почти верен для начальной настройки вашего репозитория, вам нужно добавить еще несколько шагов в конец:

git branch -M main
git remote add origin [email protected]:username/repository-name.git #Edit this to match your Github repo
git push -u origin main

Первая строка, которую я добавил, устанавливает ветку в git (ветка по умолчанию Github main), вторая строка устанавливает удаленное происхождение, а последняя строка перемещает вашу папку в Github.

Скрипт, который вы вызываете из crontab, должен выглядеть так:

cd ~/myfolder
git add .
git commit -a -m "$current_date"
git push

Предполагая, что вы назвали его upload-script.sh, это запись crontab, которая будет запускаться каждую минуту (самый быстрый интервал, допускаемый crontab) без вывода:

* * * * * ~/upload-script.sh >/dev/null 2>&1

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

И для справки, вот документация Github о том, как настроить удаленный репозиторий (полезно для отладки проблем с git): https://docs.github.com/en/get-started/using-git/pushing-commit-to-a -remote-репозиторий

Надеюсь это поможет :)

Новый участник
Pranav Sharma is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.