# Практические кейсы и ежедневные сценарии
playbooks/site.yml (например, скорректировать пути бэкапов) и зафиксировать это в истории.
1. Перейдите в каталог репозитория и обновите файлы до актуального состояния:
cd ~/projects/infra git pull origin main
2. Откройте файл в вашем текстовом редакторе для внесения изменений:
# Введите команду редактирования (например, "nano" или ваш настроенный alias "edit" для Notepad++) edit playbooks/site.yml
3. Сохраните изменения, вернитесь в консоль и зафиксируйте их:
# Проверьте, какие файлы были изменены git status -s # Добавьте измененный файл в индекс git add playbooks/site.yml # Создайте коммит с понятным описанием изменений git commit -m "fix: update backup paths in site.yml" # Отправьте коммит на сервер Gitea git push origin main---
roles/nginx/tasks/main.yml.
1. Создайте структуру каталогов и откройте новый файл в редакторе:
mkdir -p roles/nginx/tasks edit roles/nginx/tasks/main.yml
2. Начните отслеживание нового файла в Git:
git add . в корневом каталоге. Она может случайно захватить временные лог-файлы или незашифрованные файлы секретов. Добавляйте новые файлы точечно, прописывая к ним явные пути.
# Проверьте статус (файл должен находиться в категории Untracked) git status # Явно укажите Git начать отслеживание этого файла git add roles/nginx/tasks/main.yml # Создайте коммит и отправьте его на сервер git commit -m "feat: add basic task layout for nginx role" git push origin main---
main, с которой работают остальные члены команды.
1. Создайте изолированную экспериментальную ветку и перейдите на неё:
# Переключитесь на актуальную версию ветки main git switch main git pull origin main # Создайте ветку эксперимента git switch -c experiment/global-refactor
2. Отредактируйте файлы и зафиксируйте изменения локально:
# Откройте плейбук для внесения тестовых изменений edit playbooks/base_setup.yml # Так как мы находимся в изолированной ветке, мы можем безопасно добавить изменения измененных файлов git add -u git commit -m "refactor: apply experimental directory structuring"
3. Примите решение по результатам тестирования:
ВАРИАНТ А Эксперимент удался. Вливаем изменения в основную ветку:
# Вернитесь в ветку main git switch main # Слейте изменения из экспериментальной ветки в основную git merge experiment/global-refactor # Отправьте объединенный результат на сервер git push origin main
ВАРИАНТ Б Эксперимент провалился. Безболезненно удаляем ветку:
# Вернитесь на стабильную ветку main git switch main # Принудительно удалите испорченную ветку эксперимента git branch -D experiment/global-refactor---
git pull или выполнить merge, консоль выдала ошибку "CONFLICT (content): Merge conflict in playbooks/site.yml".
1. Локализуйте конфликтный файл:
git status # Ищите пометку "both modified: playbooks/site.yml"
2. Откройте этот файл в текстовом редакторе:
edit playbooks/site.yml
3. Найдите в тексте разделительные маркеры Git:
<<<<<<< HEAD Ваша локальная версия (то, что было у вас на компьютере) ======= Удаленная версия (то, что кто-то уже успел отправить на Gitea) >>>>>>> a1b2c3d4...
4. Отредактируйте конфликтную область:
Удалите маркеры конфликта (`<<<<<<<`, `=======`, `>>>>>>>`) и оставьте только правильную логику (возможно, объединив обе версии).
5. Зафиксируйте успешное решение конфликта в репозитории:
# Сообщите Git, что конфликт решен git add playbooks/site.yml # Завершите операцию слияния git commit -m "merge: resolve conflicts in site.yml"