Автоматизируйте коммиты и отправки Git в Linux с помощью сценария Bash
Учебное пособие по автоматизированному Git Commit и Push Script
Как человек, которому надоело вручную добавлять, фиксировать и отправлять код, я хотел создать решение, которое могло бы автоматизировать этот процесс. Это руководство поможет вам настроить сценарий bash, который автоматизирует процесс фиксации и отправки изменений в несколько репозиториев Git через равные промежутки времени. Скрипт немедленно добавит изменения, зафиксирует их каждые несколько часов и отправит в ветку main
.
Предпосылки
- Установите Git. Убедитесь, что Git установлен в вашей системе.
2. Инициализировать репозитории Git: для каждого репозитория, который вы хотите автоматизировать, инициализируйте репозиторий Git. Откройте терминал и перейдите в каждый каталог репозитория. Запустите следующую команду в каждом каталоге:
git init
3. Добавить удаленный источник. После инициализации репозиториев Git добавьте удаленный источник для каждого хранилища. Замените <remote-url>
URL-адресом вашего удаленного репозитория. Выполните следующую команду в каждом каталоге репозитория:
git remote add origin <remote-url>
Настройка скрипта
- Создайте сценарий Bash:
Откройте текстовый редактор и создайте новый файл с именем auto_commit.sh
.
2. Скопируйте скрипт:
Скопируйте следующий скрипт и вставьте его в auto_commit.sh
:
#!/bin/bash # Make an array of repository directories,which you want to auto-commit repo_dirs=( "/path/to/your/repo1" "/path/to/your/repo2" "/path/to/your/repo3" # Add more repository directories,if needed ) # Function to navigate to a repository directory, add changes, # and commit every few hours perform_git_operations() { local repo_dir=$1 # Navigate to the repo directory cd "$repo_dir" || return # Add all changes to the staging area git add . # Commit the changes with a timestamp while true; do git commit -m "Automated commit on $(date)" # change msg as needed sleep 6h # change 6 with any value done } # Loop over the repo directories and run the same script for each one for repo_dir in "${repo_dirs[@]}"; do # Run the script initially for each repo directory perform_git_operations "$repo_dir" & done # Loop indefinitely and push any changes, every few minutes while true; do sleep 15m # change 15 with any value # Loop through the repo directories and push changes for each one for repo_dir in "${repo_dirs[@]}"; do # Navigate to the repository directory cd "$repo_dir" || continue # Push the changes to the remote repo's 'main' branch git push origin main done done
3.Настройте каталоги репозиториев:
В скрипте обновите массив repo_dirs
, указав пути к каталогам вашего репозитория. Если не знаете путь, откройте каталог в терминале и используйте команду `pwd`.
4. Сделайте скрипт исполняемым:
Сохраните файл auto_commit.sh
и сделайте его исполняемым, выполнив в терминале следующую команду:
chmod +x auto_commit.sh
Запуск скрипта
- Выполнить скрипт:
В терминале перейдите в каталог, где находится auto_commit.sh
. Запустите следующую команду, чтобы выполнить скрипт: ./auto_commit.sh
2.Расслабьтесь и расслабьтесь:
Скрипт немедленно добавит изменения, зафиксирует каждые 6 часов и отправит изменения в ветку main
каждые 15 минут для всех репозиториев, указанных в массиве repo_dirs
.
Поздравляем! Вы настроили автоматическую фиксацию Git и сценарий отправки. Этот сценарий поможет вам оптимизировать рабочий процесс (в основных случаях), автоматизируя процесс фиксации и отправки изменений в несколько репозиториев через равные промежутки времени.
Не стесняйтесь настраивать сценарий в соответствии с вашими конкретными потребностями.