diff options
Diffstat (limited to 'git-create')
| -rw-r--r-- | git-create | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/git-create b/git-create new file mode 100644 index 0000000..3e95118 --- /dev/null +++ b/git-create @@ -0,0 +1,44 @@ +#!/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} репозиторий на сервере..." + +# Выполняем удаленную команду на сервере от имени пользователя git +ssh ${SERVER} "mkdir -p ${REMOTE_PATH} && git init --bare ${REMOTE_PATH}" + +if [ $? -eq 0 ]; then + echo "====> Репозиторий успешно создан на сервере!" + + # Проверяем, находимся ли мы внутри локального 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}" + fi +else + echo "Ошибка при создании репозитория на сервере." +fi |
