From 5816aa686f442041aed65b5b9872598acb0fd1ac Mon Sep 17 00:00:00 2001 From: wakadakawaka Date: Tue, 15 Apr 2025 00:28:08 +0500 Subject: [PATCH] add pages --- astro.config.mjs | 18 +-- .../knowledge-base/Работа с GIT/autodeploy.md | 129 ++++++++++++++++++ .../Работа с GIT/Основные команды/git-add.md | 21 +++ .../Основные команды/git-branch.md | 31 +++++ .../Основные команды/git-checkout.md | 27 ++++ .../Основные команды/git-clone.md | 21 +++ .../Основные команды/git-commit.md | 13 ++ .../Основные команды/git-config.md | 20 +++ .../Работа с GIT/Основные команды/git-init.md | 15 ++ .../Работа с GIT/Основные команды/git-log.md | 19 +++ .../Основные команды/git-merge.md | 14 ++ .../Работа с GIT/Основные команды/git-pull.md | 13 ++ .../Работа с GIT/Основные команды/git-push.md | 19 +++ .../Основные команды/git-status.md | 16 +++ .../git-example-fork-contribute.md | 39 ++++++ .../git-example-start-project.md | 49 +++++++ .../git-example-update-project.md | 28 ++++ 17 files changed, 478 insertions(+), 14 deletions(-) create mode 100644 src/content/docs/knowledge-base/Работа с GIT/autodeploy.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-add.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-branch.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-checkout.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-clone.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-commit.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-config.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-init.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-log.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-merge.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-pull.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-push.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-status.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-fork-contribute.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-start-project.md create mode 100644 src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-update-project.md diff --git a/astro.config.mjs b/astro.config.mjs index b4b3caf..7266f29 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -15,20 +15,10 @@ export default defineConfig({ social: [{ icon: 'github', label: 'GitHub', href: 'https://git.sinenikolsky.ru/artem/starlite-bsp-kb.git' }], sidebar: [ { - collapsed: true, - label: 'Библиотека стандартных подсистем', - autogenerate: { directory: 'bsp' }, - }, - { - collapsed: true, - label: 'Зарплата и управление персоналом', - autogenerate: { directory: 'zup' }, - }, - { - collapsed: true, - label: 'ERP. Управление холдингом', - autogenerate: { directory: 'erp_uh' }, - }, + label: 'База знаний', + // Autogenerate a group of links for the 'constellations' directory. + autogenerate: { directory: 'knowledge-base' }, + }, ], }), ], diff --git a/src/content/docs/knowledge-base/Работа с GIT/autodeploy.md b/src/content/docs/knowledge-base/Работа с GIT/autodeploy.md new file mode 100644 index 0000000..c4b0f40 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/autodeploy.md @@ -0,0 +1,129 @@ +--- +title: Автоматический деплой сайта из Gitea через Webhook +--- + +## 📋 Описание +Эта инструкция описывает, как настроить автоматическое обновление (деплой) сайта на Windows-сервере после `git push` в репозиторий Gitea, используя webhook и скрипт на стороне сервера. + +--- + +## 🧱 Что используется +- **Gitea** — self-hosted Git-сервер +- **Windows Server** — где расположен сайт и работает Apache +- **Apache** — размещает сайт, слушает Webhook +- **Git** — установлен и настроен на сервере +- **PHP** — обрабатывает Webhook +- **Планировщик задач Windows** — запускает bat-скрипт + +--- + +## ✅ Структура проекта + +- Исходники сайта: `C:\mykb` +- Папка публикации: `C:\Apache24\htdocs\1c-knowledge` +- Gitea-репозиторий: `https://git.sinenikolsky.ru/artem/docusaurus-kb.git` + +--- + +## 🔧 Шаг 1: Подготовка репозитория на сервере + +```bash +cd C:\mykb +git init +git remote add origin https://git.sinenikolsky.ru/artem/docusaurus-kb.git +git pull origin main +``` + +Настрой имя пользователя и email: +```bash +git config --global user.name "Artem" +git config --global user.email "you@example.com" +``` + +--- + +## 🔧 Шаг 2: Настройка webhook в Gitea + +1. Перейди в репозиторий → **Settings** → **Webhooks** +2. Добавь URL: + ``` + http:///webhook/index.php + ``` +3. Тип: `application/json` +4. Включи только `push` события + +--- + +## 🔧 Шаг 3: Создание webhook-обработчика + +📁 Путь: `C:\Apache24\htdocs\webhook\index.php` + +```php + ⚠️ Убедись, что `robocopy` установлен (входит в состав Windows). + +--- + +## 🔧 Шаг 5: Создание задачи в планировщике + +1. Открой "Планировщик заданий Windows" +2. Создай задачу **"Docusaurus Auto Deploy"** +3. Установи: + - Триггеры: нет (будет запускаться вручную через webhook) + - Действие: `cmd.exe` + - Аргументы: `/c C:\mykb\update-site.bat` + - Запуск от имени администратора + +Проверь запуск вручную: +`schtasks /Run /TN "Docusaurus Auto Deploy"` + +--- + +## 🧪 Шаг 6: Проверка + +1. Сделай `git push` в Gitea +2. Перейди в Gitea → репозиторий → Webhooks → Recent Deliveries +3. Убедись, что webhook сработал и вернул `OK` +4. Проверь, что сайт обновился в `http:///1c-knowledge/` + +--- + +## 💡 Советы + +- Включи логирование в `update-site.bat`, если нужно отладить: + ```bat + npm run build >> log.txt 2>&1 + ``` +- Используй `git reset --hard` перед `pull`, если бывают конфликты +- Проверь, что `git` работает из `cmd` без ошибок + +--- + +## ✅ Готово +Теперь сайт будет автоматически обновляться после каждого push в Gitea! 🎉 diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-add.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-add.md new file mode 100644 index 0000000..4373f6c --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-add.md @@ -0,0 +1,21 @@ +--- +title: Добавление файлов в индекс +--- + +`git add` — подготавливает файлы для коммита. Без этой команды Git не будет учитывать изменения. + +### Примеры: + +Добавить конкретный файл: + +```bash +git add index.html +``` + +Добавить все изменённые файлы: + +```bash +git add . +``` + +После этого файлы попадают в "staging area" — область подготовки. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-branch.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-branch.md new file mode 100644 index 0000000..a81d376 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-branch.md @@ -0,0 +1,31 @@ +--- +title: Работа с ветками +--- + +Git позволяет работать с несколькими версиями проекта одновременно с помощью веток (branches). + +### Создание новой ветки: + +```bash +git branch feature-x +``` + +### Переход на ветку: + +```bash +git checkout feature-x +``` + +### Создание и переход одновременно: + +```bash +git checkout -b feature-x +``` + +### Просмотр всех веток: + +```bash +git branch +``` + +Текущая ветка будет отмечена звёздочкой `*`. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-checkout.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-checkout.md new file mode 100644 index 0000000..9378840 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-checkout.md @@ -0,0 +1,27 @@ +--- +title: Переключение между ветками и коммитами +--- + +`git checkout` — переключает на другую ветку, коммит или файл. + +### Примеры: + +Перейти на другую ветку: + +```bash +git checkout dev +``` + +Создать новую ветку и сразу перейти: + +```bash +git checkout -b hotfix-1 +``` + +Вернуть файл в состояние последнего коммита: + +```bash +git checkout -- файл.txt +``` + +Git подскажет, если текущие изменения будут потеряны при переключении. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-clone.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-clone.md new file mode 100644 index 0000000..21175bc --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-clone.md @@ -0,0 +1,21 @@ +--- +title: Клонирование репозитория +--- + +`git clone` — команда, с помощью которой можно скопировать удалённый репозиторий (например, с Gitea, GitHub или GitLab) на свой компьютер. + +### Примеры: + +Клонирование по HTTPS: + +```bash +git clone https://git.sinenikolsky.ru/user/repo.git +``` + +Клонирование по SSH (если добавлен SSH-ключ): + +```bash +git clone git@git.sinenikolsky.ru:user/repo.git +``` + +После клонирования появится папка `repo`, внутри которой будет полный проект. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-commit.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-commit.md new file mode 100644 index 0000000..b518b8b --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-commit.md @@ -0,0 +1,13 @@ +--- +title: Фиксация изменений +--- + +`git commit` — сохраняет изменения, подготовленные командой `git add`, в историю проекта. + +### Пример: + +```bash +git commit -m "Добавлен новый раздел на сайте" +``` + +Хорошие коммиты должны быть с понятными сообщениями: что и зачем изменено. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-config.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-config.md new file mode 100644 index 0000000..1f36a9b --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-config.md @@ -0,0 +1,20 @@ +--- +title: Настройка пользователя +--- + +Перед первым использованием Git нужно указать своё имя и email. Они будут использоваться в каждом коммите. + +### Пример: + +```bash +git config --global user.name "Иван Иванов" +git config --global user.email "ivan@example.com" +``` + +Проверка настроек: + +```bash +git config --list +``` + +Если не указать имя/email — Git не позволит делать коммиты. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-init.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-init.md new file mode 100644 index 0000000..f17ce21 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-init.md @@ -0,0 +1,15 @@ +--- +title: Инициализация репозитория +--- + +`git init` — команда, которая создаёт новый Git-репозиторий в текущей папке. Это первый шаг при создании проекта под управление версиями. + +### Пример: + +```bash +mkdir my-project +cd my-project +git init +``` + +После этого Git начнёт отслеживать изменения в этой папке. Появится скрытая директория `.git`, где хранится история проекта. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-log.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-log.md new file mode 100644 index 0000000..2b5aeb9 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-log.md @@ -0,0 +1,19 @@ +--- +title: Просмотр истории коммитов +--- + +`git log` — показывает все коммиты в истории репозитория. + +### Пример: + +```bash +git log +``` + +Более удобный и краткий вариант: + +```bash +git log --oneline --graph --all +``` + +Это покажет историю в виде дерева. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-merge.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-merge.md new file mode 100644 index 0000000..926cb46 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-merge.md @@ -0,0 +1,14 @@ +--- +title: Слияние веток +--- + +`git merge` — объединяет одну ветку с другой. Обычно используется, чтобы влить изменения из feature-ветки в основную (main или master). + +### Пример: + +```bash +git checkout main +git merge feature-x +``` + +После слияния история двух веток объединяется. Если есть конфликты — Git попросит их вручную разрешить. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-pull.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-pull.md new file mode 100644 index 0000000..28e4249 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-pull.md @@ -0,0 +1,13 @@ +--- +title: Получение изменений из удалённого репозитория +--- + +`git pull` — загружает последние изменения из удалённого репозитория и объединяет с локальной веткой. + +### Пример: + +```bash +git pull origin main +``` + +Полезно, если вы работаете в команде и хотите получить изменения от коллег. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-push.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-push.md new file mode 100644 index 0000000..444f504 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-push.md @@ -0,0 +1,19 @@ +--- +title: Отправка изменений в удалённый репозиторий +--- + +`git push` — отправляет локальные коммиты в удалённый репозиторий. + +### Пример: + +```bash +git push origin main +``` + +Если ветка новая и ещё не существует на сервере: + +```bash +git push -u origin my-branch +``` + +Флаг `-u` устанавливает ветку по умолчанию для будущих push/pull. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-status.md b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-status.md new file mode 100644 index 0000000..24f1db0 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Основные команды/git-status.md @@ -0,0 +1,16 @@ +--- +title: Проверка состояния репозитория +--- + +`git status` — одна из самых часто используемых команд. Показывает, какие файлы изменены, какие — готовы к коммиту, а какие — нет. + +### Пример: + +```bash +git status +``` + +Вы увидите: +- изменённые, но не добавленные в индекс файлы (в красном), +- файлы, добавленные в индекс (в зелёном), +- неотслеживаемые файлы. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-fork-contribute.md b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-fork-contribute.md new file mode 100644 index 0000000..3be3571 --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-fork-contribute.md @@ -0,0 +1,39 @@ +--- +title: Форк и вклад в чужой проект +--- + +Пример: вы хотите внести изменения в чужой репозиторий на GitHub. + +### Шаги: + +1. Сделайте форк проекта на GitHub (кнопка "Fork"). + +2. Клонируйте себе: + +```bash +git clone https://github.com/yourusername/project-name.git +cd project-name +``` + +3. Создайте новую ветку: + +```bash +git checkout -b fix-typos +``` + +4. Внесите изменения, затем: + +```bash +git add . +git commit -m "Исправлены опечатки в README" +``` + +5. Отправьте ветку на GitHub: + +```bash +git push origin fix-typos +``` + +6. Перейдите на сайт GitHub и создайте Pull Request в оригинальный репозиторий. + +Теперь автор проекта может принять ваши изменения. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-start-project.md b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-start-project.md new file mode 100644 index 0000000..3c0020a --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-start-project.md @@ -0,0 +1,49 @@ +--- +title: Создание нового проекта с нуля +--- + +Пример: вы хотите создать новый проект и загрузить его на GitHub или Gitea. + +### Шаги: + +1. Создайте папку проекта: + +```bash +mkdir my-new-project +cd my-new-project +``` + +2. Инициализируйте Git-репозиторий: + +```bash +git init +``` + +3. Создайте файл, например `README.md`: + +```bash +echo "# My New Project" > README.md +``` + +4. Добавьте и зафиксируйте изменения: + +```bash +git add . +git commit -m "Первый коммит" +``` + +5. Создайте репозиторий на GitHub или Gitea вручную. + +6. Подключите удалённый репозиторий: + +```bash +git remote add origin https://git.sinenikolsky.ru/username/my-new-project.git +``` + +7. Отправьте изменения: + +```bash +git push -u origin main +``` + +Готово! Проект опубликован. diff --git a/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-update-project.md b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-update-project.md new file mode 100644 index 0000000..a6030bb --- /dev/null +++ b/src/content/docs/knowledge-base/Работа с GIT/Примеры использования/git-example-update-project.md @@ -0,0 +1,28 @@ +--- +title: Получение обновлений из оригинального репозитория +--- + +Если вы сделали форк и хотите получить последние изменения из оригинала: + +### Шаги: + +1. Добавьте оригинальный репозиторий как дополнительный remote: + +```bash +git remote add upstream https://github.com/originaluser/project-name.git +``` + +2. Получите обновления: + +```bash +git fetch upstream +``` + +3. Обновите вашу ветку: + +```bash +git checkout main +git merge upstream/main +``` + +Теперь ваша копия содержит последние изменения оригинального проекта.