Prompt file imported from IrynaKilyk/lab1-rust-agent (
.github/prompts/git-init.prompt.md). Copyright stays with the author.
1. Призначення
Виконай команду git-init для підготовки Git-конфігурації Rust-репозиторію: перевір Git-репозиторій, ідемпотентно налаштуй .gitignore та .gitattributes, а потім покажи стан Git.
2. Передумови
- Поточний каталог є коренем репозиторію.
- Git встановлено та команда
gitдоступна в PATH. - Не видаляй і не перезаписуй наявні файли.
3. Дії
-
Перевір, що Git встановлено. Якщо команда
gitнедоступна, зупинися та повідом крок і причину. -
Перевір, що поточний каталог є Git-репозиторієм, виконавши:
git rev-parse --is-inside-work-treeПродовжуй лише якщо команда повертає
true. -
Перевір вміст
.gitignore. Створи файл, якщо його немає, або онови його без перезапису наявного вмісту. Додай окремі рядкиtarget/іbuild/лише за їхньої відсутності; не дублюй рядки. -
Перевір вміст
.gitattributes. Створи файл, якщо його немає, або онови його без перезапису наявного вмісту. Додай окремі рядки*.sh text eol=lfі*.bat text eol=crlfлише за їхньої відсутності; не дублюй рядки. -
Покажи стан Git командою
git status.
4. Очікувані файли
Після виконання мають існувати:
.gitignore
.gitattributes
5. Команди перевірки
Виконай і повідом результати:
- Переконайся, що
.gitignoreмістить окремі рядкиtarget/іbuild/. - Виконай
git check-ignore -v target/x build/xі переконайся, що відповідні шляхи ігноруються. - Код завершення
1відgit check-ignoreдля неіснуючого каталогу не вважай помилкою, якщо перевірка наявності рядківtarget/іbuild/у.gitignoreпройшла. - Виконай
git status.
Кроки перевірки лише читають і нічого не змінюють.
6. Повідомлення про помилку
Якщо поточний каталог не є Git-репозиторієм або Git не встановлено:
- Зупинися на відповідному кроці.
- Назви крок і точну причину помилки.
- Нічого не видаляй і не перезаписуй.
- Не повідомляй про успішне завершення.
7. Ідемпотентність
- Перед зміною
.gitignoreабо.gitattributesперевір їхній наявний вміст. - Повторний запуск не змінює вже коректні файли.
- Не дублюй рядки
target/,build/,*.sh text eol=lfабо*.bat text eol=crlf.
