From 7f87b98250e2eebcbbec4a6295ec68801550bddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0=20=D0=A4=D0=B0?= =?UTF-8?q?=D1=80=D0=B1=D0=B5=D1=80?= Date: Wed, 21 Oct 2026 15:27:21 +0400 Subject: readme --- git-create | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) (limited to 'git-create') diff --git a/git-create b/git-create index 3e95118..f90b66b 100644 --- a/git-create +++ b/git-create @@ -1,44 +1,40 @@ #!/bin/bash -# Проверяем аргументы if [ "$#" -ne 2 ]; then echo "Использование: git-create [public|private] [имя_репозитория]" - echo "Пример: git-create private my-awesome-app" exit 1 fi TYPE=$1 NAME=$2 - -# Проверяем корректность типа -if [ "$TYPE" != "public" ] && [ "$TYPE" != "private" ]; then - echo "Ошибка: Тип должен быть либо 'public', либо 'private'" - exit 1 -fi - -# Конфигурация сервера (замените на ваш IP или имя из .ssh/config) SERVER="git@АДРЕС_СЕРВЕРА" REMOTE_PATH="/home/git/repositories/${TYPE}/${NAME}.git" -echo "====> Создаю пустой ${TYPE} репозиторий на сервере..." +# Запрашиваем описание для публичного репозитория +DESC="" +if [ "$TYPE" == "public" ]; then + read -p "Введите описание для cgit (или нажмите Enter): " DESC +fi -# Выполняем удаленную команду на сервере от имени пользователя git +echo "====> Создаю пустой ${TYPE} репозиторий на сервере..." ssh ${SERVER} "mkdir -p ${REMOTE_PATH} && git init --bare ${REMOTE_PATH}" if [ $? -eq 0 ]; then - echo "====> Репозиторий успешно создан на сервере!" + echo "====> Репозиторий успешно создан!" + + # Если репозиторий публичный, настраиваем параметры для cgit на сервере + if [ "$TYPE" == "public" ]; then + ssh ${SERVER} "touch ${REMOTE_PATH}/git-daemon-export-ok" + if [ ! -z "$DESC" ]; then + # Прописываем описание напрямую в серверный git config + ssh ${SERVER} "git --git-dir=${REMOTE_PATH} config gitweb.description \"$DESC\"" + fi + fi - # Проверяем, находимся ли мы внутри локального git-репозитория + # Привязка локальной папки if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then - echo "====> Найдена локальная папка git. Привязываю remote 'origin'..." git remote remove origin 2>/dev/null git remote add origin ${SERVER}:${REMOTE_PATH} - echo "====> Готово! Теперь вы можете сделать: git push -u origin --all" - else - echo "====> Внимание: Текущая папка не является git-репозиторием." - echo "Для привязки выполните локально:" - echo "git remote add origin ${SERVER}:${REMOTE_PATH}" + echo "====> Локальный remote привязан. Можно делать git push!" fi -else - echo "Ошибка при создании репозитория на сервере." fi -- cgit v1.2.3