imported>Vix |
imported>Vix |
(не показано 6 промежуточных версий этого же участника) |
Строка 70: |
Строка 70: |
| git push -u origin --all | | git push -u origin --all |
|
| |
|
| ==GOGS== | | * Если возникает ошибка: "Peer's Certificate issuer is not recognized" |
| ОПИСАНИЕ:
| | используйте параметр: git -c http.sslVerify=false clone ... |
| <hr> | | ==[[GOGS]]== |
| '''Gogs''' — продукт китайских разработчиков. На первый взгляд он почти ничем не отличается от GitHub или BitBucket — это даже по дизайну заметно.
| | <br> |
| Но при всех внешних сходствах у него есть одно выгодное отличие от существующих аналогов: легковесность.
| | ==[[Git-Ifs]]== |
| | <br> |
|
| |
|
| '''Gogs''' написан на Go (собственно, это название представляет собой сокращение от Go Git Service). Из этого факта вытекают серьёзные преимущества: низкие требования к системным ресурсам, минимум зависимостей, простота установки и настройки.
| | ==ПОЛЕЗНОЕ== |
| | |
| В числе важнейших характеристик '''Gogs''' также следует назвать:
| |
| | |
| * поддержку протоколов '''HTTP(s) и SSH''';
| |
| * поддержку '''SMTP''' и '''LDAP''';
| |
| * возможность создания как приватных, так и публичных репозиториев;
| |
| * интеграцию с социальными сетями (пока что поддерживаются '''GitHub, Google+''', а также китайские сервисы '''QQ и Weibo''');
| |
| * возможность работы в связке с сервисами непрерывной интеграции и '''DevOps-сервисами'''
| |
| | |
| '''УСТАНОВКА и НАСТРОЙКА GOGS & POSTGRESQL:'''
| |
| <hr>
| |
| '''* Представлено в виде готового скрипта для Debian 9:'''
| |
| #!/bin/bash
| |
| # install & build googs
| |
| #
| |
| git_path="/home/git";
| |
| gogs_conf="/etc/gogs";
| |
| ## подготовка
| |
| sudo apt update && sudo apt upgrade
| |
| sudo apt-get install -y git golang golang-go golang-any golang-doc golang-src
| |
| # версия golang должна быть не ниже 1.7
| |
| sudo adduser --disabled-login --gecos 'Gogs' git
| |
| mkdir -p $gogs_path
| |
| mkdir -p $gogs_conf/custom/conf;
| |
| touch $gogs_conf/custom/conf/app.ini;
| |
| mkdir -p $gogs_conf/custom/sert;
| |
| ## сертификаты для gogs
| |
| cd $gogs_conf/custom/sert
| |
| openssl req -new -x509 -days 3650 -nodes -out gogs.pem.cert -keyout gogs.pem.key
| |
| #
| |
| echo "export GOPATH=$git_path/gogs">>$git_path/.bashrc;
| |
| echo "export GOROOT=$git_path/go">>$git_path/.bashrc;
| |
| echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $git_path/.bashrc;
| |
| chown -R git:git $gogs_path;
| |
| chown -R git:git $gogs_conf;
| |
| sudo su - git;
| |
| mkdir -p $git_path/go/src;
| |
| mkdir -p $git_path/go/bin;
| |
| mkdir -p $git_path/go/pkg;
| |
| ln -s /usr/lib/go/src/* $git_path/go/src
| |
| ln -s /usr/lib/go/bin/* $git_path/go/bin
| |
| ln -s /usr/lib/go/pkg/* $git_path/go/pkg
| |
| go get -u github.com/gogs/gogs;
| |
| ln -s $git_path/go/src/github.com/gogs/gogs $git_path;
| |
| cd $git_path/gogs;
| |
| # сборка gogs
| |
| go build;
| |
| ln -s $git_path/gogs/gogs $git_path/go/bin/gogs;
| |
| ln -s $gogs_conf/custom $git_path/gogs;
| |
| logout;
| |
| # установка на debian
| |
| cp -f $gogs_path/gogs/scripts/init/debian/gogs /etc/init.d/gogs
| |
| update-rc.d gogs defaults
| |
| chmod 0755 /etc/init.d/gogs
| |
| cp -f $gogs_path/gogs/scripts/systemd/gogs.service /lib/systemd/system/gogs.service
| |
| systemctl enable gogs.service
| |
| # правим конфиг под базу данных postgresql если надо или через localhost:3000
| |
| #editor go/src/github.com/gogits/gogs/conf/app.ini
| |
| # и копируем его в /etc/gogs/custom/conf/app.ini
| |
| systemctl start gogs.service
| |
| ##
| |
| ## перенаправляем порт 3000 на 80
| |
| ## section NAT
| |
| iptables -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
| |
| ## сохряняем для восстановления при перезагрузке
| |
| if [ -d /etc/scripts/iptables ];
| |
| then
| |
| mkdir -p /etc/scripts/iptables;
| |
| fi
| |
|
| |
| iptables-save > /etc/scripts/iptables/rule;
| |
| ##
| |
| | |
| '''* дальше необходимо создать базу данных (у меня используется Postgresql), краткий пример:'''
| |
| | |
| #sudo apt-get install -y postgresql postgresql-client libpq-dev
| |
| #sudo -u postgres psql -d template1
| |
| #CREATE USER gitadmin CREATEDB;
| |
| #\password mypassdb
| |
| #
| |
| #CREATE DATABASE gogs OWNER gitadmin;
| |
| #\q
| |
| #
| |
| #
| |
| | |
| '''* Пример файла конфигурации в /etc/gogs/custom/conf/app.ini'''
| |
| | |
| APP_NAME = my organization
| |
| RUN_USER = git
| |
| RUN_MODE = prod
| |
|
| |
| [database]
| |
| DB_TYPE = postgres
| |
| HOST = 192.5.1.7:5432
| |
| NAME = gogs
| |
| USER = gitadmin
| |
| PASSWD = mypassdb
| |
| SSL_MODE = disable
| |
| PATH = data/gogs.db
| |
|
| |
| [repository]
| |
| ROOT = /home/git/Projects
| |
|
| |
| [server]
| |
| DOMAIN = gitserver.com
| |
| HTTP_ADDR = 40.57.12.9
| |
| HTTP_PORT = 3000
| |
| ROOT_URL = http://gitserver.com/
| |
| DISABLE_SSH = false
| |
| SSH_PORT = 22
| |
| START_SSH_SERVER = false
| |
| OFFLINE_MODE = false
| |
|
| |
| [mailer]
| |
| ENABLED = true
| |
| SEND_BUFFER_LEN = 100
| |
| SUBJECT = %(APP_NAME)s
| |
| DISABLE_HELO =
| |
| ; Use client certificate
| |
| USE_CERTIFICATE = false
| |
| SKIP_VERIFY = true
| |
| HOST = mail.myhost.com:25
| |
| FROM = admin@myhost.com
| |
| USER = admin
| |
| PASSWD = mymailpass
| |
| USE_PLAIN_TEXT = true
| |
|
| |
| [service]
| |
| REGISTER_EMAIL_CONFIRM = false
| |
| ENABLE_NOTIFY_MAIL = true
| |
| DISABLE_REGISTRATION = true
| |
| ENABLE_CAPTCHA = true
| |
| REQUIRE_SIGNIN_VIEW = true
| |
|
| |
| [picture]
| |
| DISABLE_GRAVATAR = false
| |
| ENABLE_FEDERATED_AVATAR = false
| |
|
| |
| [session]
| |
| PROVIDER = file
| |
|
| |
| [log]
| |
| MODE = file
| |
| LEVEL = Info
| |
| ROOT_PATH = /home/git/gogs/log
| |
|
| |
| [security]
| |
| INSTALL_LOCK = true
| |
| SECRET_KEY = adT0023fas
| |
|
| |
| [i18n]
| |
| LANGS = en-US,ru-RU
| |
| NAMES = English,русский
| |
|
| |
| ; Used for datetimepicker
| |
| [i18n.datelang]
| |
| en-US = en
| |
| ru-RU = ru
| |
| | |
| Все подробности по Postgresql смотрим [http://support.qbpro.ru/index.php?title=PostgreSQL тут]
| |
| | |
| =='''ПОЛЕЗНОЕ'''==
| |
| * [https://eax.me/git-commands/ Моя шпаргалка по работе с Git] | | * [https://eax.me/git-commands/ Моя шпаргалка по работе с Git] |
| * [https://git-scm.com/book/ru/v2/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git-%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B2-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9 Основы Git - Запись изменений в репозиторий] | | * [https://git-scm.com/book/ru/v2/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git-%D0%97%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9-%D0%B2-%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B9 Основы Git - Запись изменений в репозиторий] |
Строка 245: |
Строка 84: |
| * [https://habr.com/ru/post/342116/ Git на практике] | | * [https://habr.com/ru/post/342116/ Git на практике] |
| * [[Ошибка git "fatal: unable to access 'https://...': Peer's Certificate issuer is not recognized."]] | | * [[Ошибка git "fatal: unable to access 'https://...': Peer's Certificate issuer is not recognized."]] |
| | * [[ Push Error: RPC failed; result=22, HTTP code = 413]] |
|
| |
|
| '''ИСТОЧНИКИ:''' | | '''ИСТОЧНИКИ:''' |
GIT
* Команды git:
Создание нового репозитария:
touch README.md
git init
git add .
git commit -m "first commit"
git remote add origin http://gitserver.org/dev_user/testrep.git
git push -u origin dev_user
- Как обнулить историю Git?
git reset --hard commitId #УДАЛЯЕТ ИСТОРИЮ GIT
или
Все эти инструкции верны, если на удаленном сервере у вас пусто, а локально - есть проект и репозиторий Git с историей, которую вы хотите удалить.
Что будет потеряно безвозвратно
Собственно, история. Вы точно хотите ее потерять? Ради нее весь Git и придумывался.
Весь код в не-слитых (unmerged) ветках.
Весь код в orphaned ветках.
Быстрый способ
Найдите первый коммит в ветке, запомните его sha1.
git log --oneline
Переключитесь на тот коммит, который хотите сохранить в итоге.
git checkout master
Теперь используем git reset --soft чтобы сделать из всей истории один коммит (подробнее - пункт 4.1: Как вернуться (откатиться) к более раннему коммиту? ).
git reset --soft <first-commit-sha1>
git commit -m'слил историю в один коммит'
Долгий способ
Сделайте бэкап локального репозитория. Можно запушить на резервный удаленный репозиторий, а можно просто взять и переместить папку .git в другое место.
mkdir ../git-backup
mv .git ../git-backup/.git
Если не переместили локально, а забэкапили куда-то еще: удаляем папку.
rm -Rf .git
Теперь заново инициализируем репозиторий:
git init
Добавляем все файлы в рабочей области и делаем коммит.
git add .
git commit -m'начал с нуля'
Когда все готово
Подключаем удаленный репозиторий и заливаем на него изменения:
git remote add origin <url>
git push -u origin --all
- Если возникает ошибка: "Peer's Certificate issuer is not recognized"
используйте параметр: git -c http.sslVerify=false clone ...
ПОЛЕЗНОЕ
ИСТОЧНИКИ: