«Почтовый сервер на Debian 9 полная установка: dbmail & postgresql & postfix & stunnel & postgrey& spamassassin» и «Git»: разница между страницами
imported>Vix Нет описания правки |
imported>Vix (→GOGS) |
||
Строка 1: | Строка 1: | ||
==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? | |||
<hr> | |||
git reset --hard commitId #УДАЛЯЕТ ИСТОРИЮ GIT | |||
или | |||
* [https://ru.stackoverflow.com/questions/229431/%D0%9A%D0%B0%D0%BA-%D0%BE%D0%B1%D0%BD%D1%83%D0%BB%D0%B8%D1%82%D1%8C-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E-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== | |||
ОПИСАНИЕ: | |||
<hr> | |||
'''Gogs''' — продукт китайских разработчиков. На первый взгляд он почти ничем не отличается от GitHub или BitBucket — это даже по дизайну заметно. | |||
Но при всех внешних сходствах у него есть одно выгодное отличие от существующих аналогов: легковесность. | |||
'''Gogs''' написан на Go (собственно, это название представляет собой сокращение от Go Git Service). Из этого факта вытекают серьёзные преимущества: низкие требования к системным ресурсам, минимум зависимостей, простота установки и настройки. | |||
В числе важнейших характеристик '''Gogs''' также следует назвать: | |||
* поддержку протоколов '''HTTP(s) и SSH'''; | |||
* поддержку '''SMTP''' и '''LDAP'''; | |||
* возможность создания как приватных, так и публичных репозиториев; | |||
* интеграцию с социальными сетями (пока что поддерживаются '''GitHub, Google+''', а также китайские сервисы '''QQ и Weibo'''); | |||
* возможность работы в связке с сервисами непрерывной интеграции и '''DevOps-сервисами''' | |||
УСТАНОВКА и НАСТРОЙКА: | |||
<hr> | |||
* Представлено в виде скрипта для Debian: | |||
#!/bin/bash | |||
## https://linode.com/docs/development/version-control/install-gogs-on-debian/ | |||
gogs_path="/home/git/gogs"; | |||
git_path="/home/git"; | |||
## подготовка | |||
sudo apt update && sudo apt upgrade | |||
sudo apt-get install -y git golang golang-1.8 golang-1.8-doc golang-1.8-go golang-1.8-src golang-any golang-doc golang-src | |||
sudo adduser --disabled-login --gecos 'Gogs' git | |||
mkdir -p $gogs_path | |||
chown -R git:git $gogs_path | |||
cd $git_path; | |||
sudo su - git | |||
# сборка | |||
mkdir -p $git_path/go/src; | |||
mkdir -p $git_path/go/bin; | |||
ln -s /usr/lib/go/bin/* /home/git/go/bin | |||
ln -s /usr/lib/go/src/* /home/git/go/src | |||
mkdir -p $git_path/go/src/github.com/gogits/gogs | |||
export GOROOT=/home/git/go/src | |||
export GOPATH=/home/git/go | |||
#go get -u github.com/gogits/gogs; | |||
cd $git_path/go/src/github.com/gogits/gogs; | |||
git clone https://github.com/gogs/gogs; | |||
ln -s $git_path/go/src/github.com/gogits/gogs/gogs $git_path/gogs | |||
cd $git_path/gogs; | |||
#go build | |||
$git_path/gogs/scripts/build_linux64.sh | |||
ln -s $git_path/go/src/github.com/gogits/gogs/gogs/scripts/output_linux_amd64/gogs /usr/bin | |||
ln -s $git_path/go/src/github.com/gogits/gogs/gogs/scripts/output_linux_amd64/gogs $git_path/go/bin | |||
cd | |||
exit; | |||
chown -R git:git /home/git | |||
# установка на 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 | |||
# и копируем его в go/src/github.com/gogits/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 | |||
## сохряняем для восстановления при перезагрузке | |||
iptables-save > 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 смотрим [http://support.qbpro.ru/index.php?title=PostgreSQL тут] | |||
'''ИСТОЧНИКИ:''' | |||
<hr> | |||
* [https://habrahabr.ru/company/selectel/blog/305422/ Gogs: легковесный git-сервис ] | |||
* [https://ru.stackoverflow.com/questions/482760/%D0%9A%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-git-%D0%B4%D0%BB%D1%8F-utf-8-bom-%D0%B1%D0%B5%D0%B7-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8 Как настроить git для utf-8] | |||
* [http://www.calculate-linux.org/main/ru/gitolite Gitolite + git настройка] | |||
* [https://git-scm.com/book/ru/v1/Git-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5-Gitolite 8 Git на сервере - Gitolite] | |||
* [https://gogs.io/docs/installation/install_from_source Install from source gogs] | |||
* [https://linode.com/docs/development/version-control/install-gogs-on-debian/ Install Gogs on Debian 9 with nginx and PostgreSQL] | |||
* [https://gitea.io/en-US/ Fork Gogs] | |||
<hr> | <hr> | ||
* [https://www.youtube.com/watch?v=H5TnunZIN40 Видео уроки GOGS] | |||
* [https://www. |
Версия от 04:55, 25 февраля 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 ## https://linode.com/docs/development/version-control/install-gogs-on-debian/ gogs_path="/home/git/gogs"; git_path="/home/git"; ## подготовка sudo apt update && sudo apt upgrade sudo apt-get install -y git golang golang-1.8 golang-1.8-doc golang-1.8-go golang-1.8-src golang-any golang-doc golang-src sudo adduser --disabled-login --gecos 'Gogs' git mkdir -p $gogs_path chown -R git:git $gogs_path cd $git_path; sudo su - git # сборка mkdir -p $git_path/go/src; mkdir -p $git_path/go/bin; ln -s /usr/lib/go/bin/* /home/git/go/bin ln -s /usr/lib/go/src/* /home/git/go/src mkdir -p $git_path/go/src/github.com/gogits/gogs export GOROOT=/home/git/go/src export GOPATH=/home/git/go #go get -u github.com/gogits/gogs; cd $git_path/go/src/github.com/gogits/gogs; git clone https://github.com/gogs/gogs; ln -s $git_path/go/src/github.com/gogits/gogs/gogs $git_path/gogs cd $git_path/gogs; #go build $git_path/gogs/scripts/build_linux64.sh ln -s $git_path/go/src/github.com/gogits/gogs/gogs/scripts/output_linux_amd64/gogs /usr/bin ln -s $git_path/go/src/github.com/gogits/gogs/gogs/scripts/output_linux_amd64/gogs $git_path/go/bin cd exit; chown -R git:git /home/git # установка на 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 # и копируем его в go/src/github.com/gogits/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 ## сохряняем для восстановления при перезагрузке iptables-save > 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