Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:gitlab [2022/08/31 04:56] admin |
develop:gitlab [2023/08/01 04:40] (текущий) admin |
||
---|---|---|---|
Строка 4: | Строка 4: | ||
===== Общее ===== | ===== Общее ===== | ||
- | |||
- | |||
< | < | ||
< | < | ||
Строка 24: | Строка 22: | ||
apt install gitlab-ce | apt install gitlab-ce | ||
+ | # Такой вариант тоже должен работать, | ||
+ | # EXTERNAL_URL=" | ||
</ | </ | ||
Строка 30: | Строка 30: | ||
external_url ' | external_url ' | ||
</ | </ | ||
- | |||
</ | </ | ||
+ | Утилита управления **gitlab-ctl**, | ||
+ | GitLab ставится с целым набором нужного себе софта, в т.ч. **postgres**, | ||
< | < | ||
- | < | + | < |
+ | [[https:// | ||
+ | Рассматриваем использование **Apache**\\ | ||
+ | В файле **/ | ||
+ | <code bash> | ||
+ | nginx[' | ||
- | <code bash> | + | web_server[' |
+ | gitlab_workhorse[' | ||
+ | gitlab_workhorse[' | ||
+ | gitlab_workhorse[' | ||
+ | gitlab_workhorse[' | ||
</ | </ | ||
- | </ | + | Включаем модули |
- | + | Создаем и включаем виртуальный | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Работа с Git как таковым ===== | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | ===== Общее ===== | + | |
- | **Git** как таковой opensource-софт, | + | |
<code bash> | <code bash> | ||
- | # Установка | + | # This configuration has been tested on GitLab 8.2 |
- | apt git install | + | # Note this config assumes unicorn is listening on default port 8080 and |
+ | # gitlab-workhorse is listening on port 8181. To allow gitlab-workhorse to | ||
+ | # listen on port 8181, edit / | ||
+ | # | ||
+ | # gitlab_workhorse[' | ||
+ | # gitlab_workhorse[' | ||
+ | # | ||
+ | #Module dependencies | ||
+ | # mod_rewrite | ||
+ | # mod_proxy | ||
+ | # mod_proxy_http | ||
+ | < | ||
+ | ServerName < | ||
+ | ServerSignature Off | ||
- | # Инициализация проекта | + | ProxyPreserveHost On |
- | cd /' | + | |
- | # Добавление файлов к проекту | + | |
- | git add . (file1 file2 ...) | + | # http://doc.gitlab.com/ |
+ | AllowEncodedSlashes NoDecode | ||
- | # Фиксация изменений (-m коммент, | + | < |
- | git commit -m "Text comment" | + | # New authorization commands for apache 2.4 and up |
+ | # http:// | ||
+ | | ||
- | # Добавить удаленный репозиторий | + | |
- | git remote add origin | + | |
+ | ProxyPassReverse http://<my-site>/ | ||
+ | </ | ||
- | # Отправка на удаленный репозиторий | + | |
- | git push origin master | + | # http:// |
- | </code> | + | # http:// |
+ | RewriteEngine on | ||
+ | #Forward all requests to gitlab-workhorse except existing files like error documents | ||
+ | RewriteCond %{DOCUMENT_ROOT}/ | ||
+ | RewriteCond %{REQUEST_URI} ^/ | ||
+ | RewriteRule .* http:// | ||
- | **master** главная ветка по умолчанию, | + | # needed for downloading attachments |
+ | DocumentRoot / | ||
+ | #Set up apache error documents, if back end goes down (i.e. 503 error) then a maintenance/ | ||
+ | ErrorDocument 404 /404.html | ||
+ | ErrorDocument 422 /422.html | ||
+ | ErrorDocument 500 /500.html | ||
+ | ErrorDocument 502 /502.html | ||
+ | ErrorDocument 503 /503.html | ||
- | < | + | # Debian and CentOS distribution defaults provided below |
- | < | + | |
- | <code bash> | + | |
- | # Cостояние файлов | + | #ErrorLog / |
- | git status | + | #CustomLog / |
- | + | # | |
- | # Менеджер веток | + | #CustomLog /var/log/ |
- | git branch | + | |
- | + | ||
- | # Переключение веток и загрузка из в рабочий каталог | + | |
- | git checkout | + | |
- | git checkout | + | |
- | + | ||
- | # Постоянная метка, например для релиза | + | |
- | git tag | + | |
- | + | ||
- | # История коммитов | + | |
- | git log <имя ветки> | + | |
- | git log --oneline --decorate --graph --all | + | |
+ | #For Debian distributions use | ||
+ | ErrorLog / | ||
+ | CustomLog / | ||
+ | CustomLog / | ||
+ | CustomLog / | ||
+ | </ | ||
</ | </ | ||
</ | </ | ||
- | Коммит это слепок, | ||
- | Каждый коммит содержит **ссылку на предыдущий** так формируется цепочка.\\ | ||
- | **Ветка** это ничто иное как **условный указатель** на последний коммит, | ||
- | {{ : | ||
- | **HEAD** это указатель на текущую, локальную ветку, | + | **Удаление**\\ |
- | | {{ : | + | т.к. вместе с ним ставится много всякого, простое удаление не особо |
+ | <code bash> | ||
- | При переходе между ветками, | + | rpm -e gitlab-ce / apt purge gitlab-ce |
+ | find / -name gitlab | xargs rm -rf | ||
- | + | # Просмотр | |
- | < | + | ps aux | grep gitlab |
- | < | + | |
- | + | ||
- | <code bash> | + | |
</ | </ | ||
- | </ | ||
< | < | ||
- | < | + | < |
+ | В дженкинсе создан спец пользователь | ||
- | **Общее** | + | В проект добавлен пользователь дженкинса, |
- | Есть 4 основных элемента: **Рабочий каталог**, **Промежуточная область**, **Локальный репозиторий**, **Удаленный репозиторий**\\ | + | вкладка " |
+ | в интеграциях, включен дженкинс, указан url дженкинса, | ||
- | {{: | + | В проекте генерируем токен доступа, |
+ | после этого, в участниках проекта добавляется пользователь, | ||
+ | В дженкинсе, | ||
+ | выбираем тип " | ||
+ | В джобе выбран " | ||
+ | и выбрана "Use alternative credentials", | ||
- | * **git add** - добавление файла из рабочего каталога в промежуточную область | ||
- | * **git commit** - из промежуточной области в локальный репозиторий | ||
- | * **git push** - загрузка из локального репозитория в удаленный | ||
- | * **git fetch** - скачивание из удаленного репозитория в локальный | ||
- | * **git merge** - перенос из локального репозитория в рабочий каталог | ||
- | * **git pull** - получение удаленного репозитория сразу в рабочий каталог, | ||
+ | в пайплайне выполняются джобы | ||
+ | эти джобы транслиются на дженкинс джобы | ||
+ | в качестве раннеров должна выступать джобы дженкинса | ||
- | ** Установка ** | ||
- | Нормальный клиент здесь- [[https:// | ||
- | После установки делаем подпись, | ||
<code bash> | <code bash> | ||
- | $ git config --global user.name " | ||
- | $ git config --global user.mail " | ||
- | $ git config --global -- list | ||
</ | </ | ||
+ | </ | ||
- | ** Доступ SSH ** | ||
- | Затем настраиваем сертификат, | ||
- | git bash: | ||
- | <code bash> | ||
- | # Генерация ключевой пары (можно: | ||
- | $ ssh-keygen -t ed25519 -C " | ||
- | </ | ||
- | Вводим имя файла, парольную фразу можно не вводить, | ||
- | После завершения, | ||
- | закрытый ключ переименовываем в " | ||
- | Содержимое открытого ключа (" | ||
- | Так же нужно добавить созданных ключ агенту авторизации | ||
- | <code bash> | ||
- | $ eval " | ||
- | $ ssh-add ~/ | ||
- | </ | ||
- | После пишем: **"$ ssh -T git@github.com" | ||
- | |||
- | ** Траблы с тортилой ** | ||
- | |||
- | При установке стоило совершить один неверный шаг и выбрать тортилу как транспорт, | ||
- | |||
- | |||
- | ** Использование ** | ||
- | Репозитории создаются и далее привязаны к конкретным каталогам, | ||
- | |||
- | |||
- | ** Инициализация репозитория ** | ||
- | Переходим в созданный каталог: | ||
- | |||
- | |||
- | ** Добавление файлов ** | ||
- | Добавление в промежуточную область: | ||
- | Точка добавит все, можно указать конкретные, | ||
- | Просмотр состояния: | ||
- | |||
- | |||
- | ** Фиксация изменений ** | ||
- | Фиксация изменений в файлах: | ||
- | Отмена фиксации: | ||
- | |||
- | |||
- | ** Удаленный источник ** | ||
- | Добавление: | ||
- | Список доступных: | ||
- | |||
- | |||
- | ** Дополнительно ** | ||
- | <code bash> | ||
- | # Изменения в файлах: | ||
- | $ git diff | ||
- | |||
- | # История фиксаций: | ||
- | $ git diff- ???? | ||
- | |||
- | # Мержинг если есть конфликты коммитов | ||
- | $ git merge --allow-unrelated-histories | ||
- | </ | ||
- | |||
- | |||
- | </ | ||