Последнее время нейронные сети очень тесно вошли в нашу жизнь, и в жизнь веб-разработчиков в том числе. Т.к. мир IT-разработки постоянно развивается с огромной скоростью, то угнаться за ним нет возможности...

Я в своей деятельности передаю разработку фронтенда на обработку искусственному интеллекту, а уже после него занимаюсь отшлифовкой. 

Кому интересно, для себя выбрал 2 варианта нейронны сетей, работающих отлично на территории РФ: бесплатная версия китайского DeepSeek и доступ к платным нейроннымм сетям через BotHub.  Эти два варианта позволяют легко работать с большими объемами текста, поэтому были выбраны именно они.

При работе с искусственным интеллектом возникает необходимость передавать боту то, что уже есть в структуре проекта, для того, чтобы он помог найти ошибку, оптимизировать код или принять то или иное решение. И вот для этих целей был создан sh-скрипт, собирающий текущую структуру проекта (на основании данных, отправляемых в гит-репозиторий, чтобы не грузить лишнее).

Автоматизация документирования проектов: Git-скрипт для анализа структуры

Веб-мастера и разработчики часто сталкиваются с необходимостью быстро задокументировать структуру проекта. Сегодня я хочу поделиться мощным, но простым инструментом - bash-скриптом, который автоматически анализирует git-репозиторий и создает подробную текстовую документацию.

Для чего нужен этот скрипт?

Скрипт git_project_tree.sh решает несколько важных задач:

  • Быстрый обзор структуры проекта - визуализация каталогов и файлов
  • Документирование кода - создание "карты" проекта для новых разработчиков
  • Передача информации - компактное представление проекта для коллег
  • Анализ зависимостей - просмотр ключевых конфигурационных файлов

Особенность скрипта - он учитывает только файлы, находящиеся под контролем версий (git), что гарантирует актуальность информации и исключает временные/служебные файлы.

Как использовать скрипт?

1. Установка

Создайте файл git_project_tree.sh в корне вашего проекта:

#!/bin/bash

OUTPUT_FILE="git_project_structure.txt"

# Проверка git
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
    echo "Ошибка: это не git-репозиторий!" >&2
    exit 1
fi

# Очистка файла
> "$OUTPUT_FILE"

# Заголовок
{
    echo "Структура git-проекта (сгенерировано $(date))"
    echo "=========================================="
    echo ""
    echo "Ветка: $(git branch --show-current)"
    echo "Последний коммит: $(git log -1 --pretty=format:'%h - %s (%ad)' --date=short)"
    echo ""
} >> "$OUTPUT_FILE"

# Дерево файлов
echo "Дерево файлов:" >> "$OUTPUT_FILE"
echo "-------------" >> "$OUTPUT_FILE"
git ls-files | sed -e 's|[^/]*/|    |g' >> "$OUTPUT_FILE"

# Содержимое файлов
echo "" >> "$OUTPUT_FILE"
echo "Содержимое ключевых файлов:" >> "$OUTPUT_FILE"
echo "--------------------------" >> "$OUTPUT_FILE"

# Получаем все отслеживаемые файлы
git ls-files | while read -r file; do
    # Проверяем расширение файла
    case "$file" in
        *.py|*.sh|Dockerfile|docker-compose.yml|*.html|*.yml|*.yaml|requirements.txt)
            # Пропускаем бинарные файлы
            if file "$file" | grep -q "text"; then
                echo "" >> "$OUTPUT_FILE"
                echo "=== Файл: $file ===" >> "$OUTPUT_FILE"
                echo "" >> "$OUTPUT_FILE"
                head -n 200 "$file" | sed 's/^/    /' >> "$OUTPUT_FILE"
                [ $(wc -l < "$file") -gt 200 ] && echo "    ... (файл сокращен)" >> "$OUTPUT_FILE"
            fi
            ;;
    esac
done

echo "" >> "$OUTPUT_FILE"
echo "Готово! Размер файла: $(du -h $OUTPUT_FILE | cut -f1)" >> "$OUTPUT_FILE"
echo "Структура сохранена в $OUTPUT_FILE"

2. Запуск

Дайте права на выполнение и запустите скрипт:

chmod +x git_project_tree.sh
./git_project_tree.sh

3. Результат

Скрипт создаст файл git_project_structure.txt с:

  • Информацией о ветке и последнем коммите
  • Древовидной структурой файлов
  • Содержимым ключевых файлов (первые 200 строк)

Особенности и настройка

Кроссплатформенность

Скрипт работает как на Linux, так и на MacOS. Для Windows рекомендуется использовать WSL или Git Bash.

Фильтрация файлов

По умолчанию скрипт обрабатывает:

*.py|*.sh|Dockerfile|docker-compose.yml|*.html|*.yml|*.yaml|requirements.txt

Чтобы добавить свои расширения, измените case-блок в скрипте.

Важно: Скрипт автоматически пропускает бинарные и слишком большие файлы, чтобы избежать проблем с производительностью.

Пример использования

Представьте, что вам нужно:

  1. Передать проект новому разработчику
  2. Сохранить снимок состояния кода
  3. Проанализировать структуру legacy-проекта

Вместо ручного документирования просто запустите скрипт и отправьте полученный текстовый файл!

Заключение

Этот простой, но мощный инструмент значительно экономит время при работе с проектами. Он особенно полезен для:

  • Веб-мастеров, работающих с множеством проектов
  • Команд разработчиков
  • Фрилансеров, передающих проекты заказчикам

Попробуйте скрипт в своем проекте и адаптируйте под свои нужды!

Количество показов: 1
05.07.2025


Реклама: ИП Попович А.И. ИНН: 231537677964. ERID: CQH36pWzJqCRJ4UXZAPx4DUtAuR68f7j7SEtAw8y5oHN14
Реклама: ООО 'КвикСофт'. ИНН 7734706120. ERID: CQH36pWzJqCRJ4UXKvMNSFqMsX7dYBaPEMRX5odpmNzefp

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.