Git: различия между версиями
imported>Vix (→GOGS) |
imported>Vix (→GOGS) |
||
Строка 89: | Строка 89: | ||
* Представлено в виде скрипта для Debian: | * Представлено в виде скрипта для Debian: | ||
#!/bin/bash | #!/bin/bash | ||
# | # install & build googs | ||
# | |||
git_path="/home/git"; | git_path="/home/git"; | ||
gogs_conf="/etc/gogs"; | |||
## подготовка | ## подготовка | ||
sudo apt update && sudo apt upgrade | sudo apt update && sudo apt upgrade | ||
sudo apt-get install -y git golang | sudo apt-get install -y git golang golang-any golang-doc golang-src | ||
sudo adduser --disabled-login --gecos 'Gogs' git | sudo adduser --disabled-login --gecos 'Gogs' git | ||
mkdir -p $gogs_path | mkdir -p $gogs_path | ||
chown -R git:git $gogs_path | mkdir -p $gogs_conf/custom/conf; | ||
touch $gogs_conf/custom/conf/app.ini; | |||
sudo su - git | 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/src; | ||
mkdir -p $git_path/go/bin; | mkdir -p $git_path/go/bin; | ||
ln -s /usr/lib/go/ | mkdir -p $git_path/go/pkg; | ||
ln -s /usr/lib/go/ | 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; | |||
ln -s $git_path/go/src/github.com | |||
cd $git_path/gogs; | cd $git_path/gogs; | ||
#go build | # сборка gogs | ||
go build; | |||
ln -s $git_path | ln -s $git_path/gogs/gogs $git_path/go/bin/gogs; | ||
ln -s $ | ln -s $gogs_conf/custom $git_path/gogs; | ||
logout; | |||
# установка на debian | # установка на debian | ||
cp -f $gogs_path/gogs/scripts/init/debian/gogs /etc/init.d/gogs | cp -f $gogs_path/gogs/scripts/init/debian/gogs /etc/init.d/gogs | ||
Строка 128: | Строка 133: | ||
# правим конфиг под базу данных postgresql если надо или через localhost:3000 | # правим конфиг под базу данных postgresql если надо или через localhost:3000 | ||
#editor go/src/github.com/gogits/gogs/conf/app.ini | #editor go/src/github.com/gogits/gogs/conf/app.ini | ||
# и копируем его в | # и копируем его в /etc/gogs/custom/conf/app.ini | ||
systemctl start gogs.service | systemctl start gogs.service | ||
## | ## | ||
Строка 135: | Строка 140: | ||
iptables -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 | iptables -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 | ||
## сохряняем для восстановления при перезагрузке | ## сохряняем для восстановления при перезагрузке | ||
iptables-save > rule | if [ -d /etc/scripts/iptables ]; | ||
## | then | ||
mkdir -p /etc/scripts/iptables; | |||
fi | |||
iptables-save > /etc/scripts/iptables/rule; | |||
## | |||
* дальше необходимо создать базу данных (у меня используется Postgresql), краткий пример: | * дальше необходимо создать базу данных (у меня используется Postgresql), краткий пример: | ||
#sudo apt-get install -y postgresql postgresql-client libpq-dev | #sudo apt-get install -y postgresql postgresql-client libpq-dev |
Версия от 04:54, 26 февраля 2019
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
GOGS
ОПИСАНИЕ:
Gogs — продукт китайских разработчиков. На первый взгляд он почти ничем не отличается от GitHub или BitBucket — это даже по дизайну заметно. Но при всех внешних сходствах у него есть одно выгодное отличие от существующих аналогов: легковесность.
Gogs написан на Go (собственно, это название представляет собой сокращение от Go Git Service). Из этого факта вытекают серьёзные преимущества: низкие требования к системным ресурсам, минимум зависимостей, простота установки и настройки.
В числе важнейших характеристик Gogs также следует назвать:
- поддержку протоколов HTTP(s) и SSH;
- поддержку SMTP и LDAP;
- возможность создания как приватных, так и публичных репозиториев;
- интеграцию с социальными сетями (пока что поддерживаются GitHub, Google+, а также китайские сервисы QQ и Weibo);
- возможность работы в связке с сервисами непрерывной интеграции и DevOps-сервисами
УСТАНОВКА и НАСТРОЙКА:
- Представлено в виде скрипта для Debian:
#!/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-any golang-doc golang-src 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 gogs CREATEDB; #\password gogs # #CREATE DATABASE gogs OWNER gogs; #\q # #
Все подробности по Postgresql смотрим тут
ИСТОЧНИКИ:
- 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