Git: различия между версиями
imported>Vix |
imported>Vix (→GIT) |
||
Строка 69: | Строка 69: | ||
git remote add origin <url> | git remote add origin <url> | ||
git push -u origin --all | git push -u origin --all | ||
* Если возникает ошибка: "Peer's Certificate issuer is not recognized" | |||
используйте параметр: git -c http.sslVerify=false clone ... | |||
==GOGS== | ==GOGS== |
Версия от 03:28, 3 апреля 2022
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 ...
GOGS
ОПИСАНИЕ:
Gogs — продукт китайских разработчиков. На первый взгляд он почти ничем не отличается от GitHub или BitBucket — это даже по дизайну заметно. Но при всех внешних сходствах у него есть одно выгодное отличие от существующих аналогов: легковесность.
Gogs написан на Go (собственно, это название представляет собой сокращение от Go Git Service). Из этого факта вытекают серьёзные преимущества: низкие требования к системным ресурсам, минимум зависимостей, простота установки и настройки.
В числе важнейших характеристик Gogs также следует назвать:
- поддержку протоколов HTTP(s) и SSH;
- поддержку SMTP и LDAP;
- возможность создания как приватных, так и публичных репозиториев;
- интеграцию с социальными сетями (пока что поддерживаются GitHub, Google+, а также китайские сервисы QQ и Weibo);
- возможность работы в связке с сервисами непрерывной интеграции и DevOps-сервисами
УСТАНОВКА и НАСТРОЙКА GOGS & POSTGRESQL:
* Представлено в виде готового скрипта для 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 смотрим тут
ПОЛЕЗНОЕ
- Моя шпаргалка по работе с Git
- Основы Git - Запись изменений в репозиторий
- Как вернуться (откатиться) к более раннему коммиту?
- обучение Git
- Git на практике
- Ошибка git "fatal: unable to access 'https://...': Peer's Certificate issuer is not recognized."
ИСТОЧНИКИ:
- Gogs: легковесный git-сервис
- Как настроить git для utf-8
- Gitolite + git настройка
- 8 Git на сервере - Gitolite
- Install from source gogs
- Install Gogs on Debian 9 with nginx and PostgreSQL
- Fork Gogs