Инструменты пользователя

Инструменты сайта


develop:gitlab

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
develop:gitlab [2022/09/01 07:29]
admin
develop:gitlab [2023/08/01 04:40] (текущий)
admin
Строка 4: Строка 4:
  
 ===== Общее ===== ===== Общее =====
- 
- 
 <details> <details>
 <summary> :!: Установка </summary> <summary> :!: Установка </summary>
Строка 26: Строка 24:
  # Такой вариант тоже должен работать, чтобы не пересобирать после задания адреса  # Такой вариант тоже должен работать, чтобы не пересобирать после задания адреса
 # EXTERNAL_URL="http://gitlab.mysite.ru" yum install gitlab-ee # EXTERNAL_URL="http://gitlab.mysite.ru" yum install gitlab-ee
- 
 </code> </code>
  
Строка 42: Строка 39:
 <details> <details>
 <summary> :!: Использовать другую инсталляцию веб сервера</summary> <summary> :!: Использовать другую инсталляцию веб сервера</summary>
- 
 [[https://docs.gitlab.com/omnibus/settings/nginx.html|Процедура описана здесь]]\\ [[https://docs.gitlab.com/omnibus/settings/nginx.html|Процедура описана здесь]]\\
 Рассматриваем использование **Apache**\\ Рассматриваем использование **Apache**\\
- 
 В файле **/etc/gitlab/gitlab.rb** В файле **/etc/gitlab/gitlab.rb**
 <code bash> <code bash>
Строка 51: Строка 46:
  
 web_server['external_users'] = ['www-data'] web_server['external_users'] = ['www-data']
- 
 gitlab_workhorse['listen_network'] = "tcp" gitlab_workhorse['listen_network'] = "tcp"
 gitlab_workhorse['listenUmask'] = "0" gitlab_workhorse['listenUmask'] = "0"
Строка 132: Строка 126:
  
  
- +**Удаление**\\ 
-<details> +т.к. вместе с ним ставится много всякого, простое удаление не особо почистило, помогло (вроде) несколько команд:\\
-<summary> :!: </summary> +
 <code bash> <code bash>
-</code> 
- 
-</details> 
- 
- 
- 
- 
-===== Работа с Git как таковым ===== 
- 
-[[https://git-scm.com/book/ru/v2|Документация]] 
- 
-===== Общее ===== 
-**Git** как таковой opensource-софт, вся работа выполняется **непосредственно в нем**, системы типа **github / gitlab** это общедоступные **хранилища**, в которых можно размещать репозитории для внешнего хранения, софт так или иначе работает прежде всего с **локальным репозиторием** и уже отдельным действием отправляет данные на внешку.\\ 
- 
-<code bash> 
-# Установка 
-apt git install 
- 
-# Инициализация проекта 
-cd /'project' && git init 
- 
-# Добавление файлов к проекту 
-git add . (file1 file2 ...) 
  
-# Фиксация изменений (-m коммент, -a применить ко всем либо к указанным файлам) +rpm -e gitlab-ce / apt purge gitlab-ce
-git commit -m "Text comment" -a (or changed-file1)+
  
-# Добавить удаленный репозиторий +find / -name gitlab | xargs rm -rf
-git remote add origin <site>.git+
  
-Отправка на удаленный репозиторий + Просмотр 
-git push origin master+ps aux | grep gitlab
 </code> </code>
  
  
-**master** главная ветка по умолчанию, создается **первым коммитом**\\ 
  
  
 <details> <details>
-<summary> :!: Еще команды</summary>+<summary> :!: Интеграция с jenkins</summary> 
 +В дженкинсе создан спец пользователь
  
-<code bash> +В проект добавлен пользователь дженкинса, мейнтейнером 
-# Cостояние файлов + вкладка "Webhooks", выбрана галочка Trigger -> push events и Enable ssl 
-git status + в интеграциях, включен дженкинс, указан url дженкинса, пользователь, название проекта
  
-# Менеджер веток +В проекте генерируем токен доступа, добавляем ему API, галочка в разрешениях, задаем имя 
-git branch+ после этого, в участниках проекта добавляется пользователь, с этим именем 
 +В дженкинсе, создаем запись кредлов, с таким же названием 
 + выбираем тип "GitLab API token", название задаем точно такое же 
 +В джобе выбран "GitLab Connections", созданный пользователь дженкинса 
 + и выбрана "Use alternative credentials", тут указан токен из проекта
  
-# Переключение веток и загрузка из в рабочий каталог 
-git checkout <существующая ветка> 
-git checkout -b <новая ветка> 
  
-# Постоянная метканапример для релиза +в пайплайне выполняются джобы 
-git tag + эти джобы транслиются на дженкинс джобы 
- + в качестве раннеров должна выступать джобы дженкинса
-# История коммитов +
-git log <имя ветки> <--all> +
-git log --oneline --decorate --graph --all +
- +
-</code> +
-</details> +
- +
-Коммит это слепок, содержит **blob (большой бинарный) объект**, и хеш сумму каждого файла, в т.ч. дерево каталогов.\\  +
-Каждый коммит содержит **ссылку на предыдущий** так формируется цепочка.\\ +
-**Ветка** это ничто иное как **условный указатель** на последний коммит, который будет указан родителем следующему. **Master** абсолютно обычная ветка, просто умолчательная и по наитию используется как основная\\ +
-{{ :develop:git0.jpg?direct&500 |}} +
- +
-**HEAD** это указатель на текущую, локальную ветку, используемую сейчас, увидеть ее можно в команде **git log**\\ +
-| {{ :develop:git1.jpg?direct&600 |}} | {{ :develop:git2.jpg?direct&600 |}} | +
- +
-При переходе между ветками, **заменяется все содержимое рабочего каталога**, файлы автоматически подменяются\\ +
- +
- +
- +
-<details> +
-<summary> :!: </summary>+
  
 <code bash> <code bash>
Строка 221: Строка 168:
  
  
-<details> 
-<summary> :!: Old</summary> 
  
-**Общее** 
-Есть 4 основных элемента: **Рабочий каталог**, **Промежуточная область**, **Локальный репозиторий**, **Удаленный репозиторий**\\ 
- 
-{{:develop:git_0.png?direct&400|}} 
- 
-  * **git add** - добавление файла из рабочего каталога в промежуточную область 
-  * **git commit** - из промежуточной области в локальный репозиторий 
-  * **git push** - загрузка из локального репозитория в удаленный  
-  * **git fetch** - скачивание из удаленного репозитория в локальный 
-  * **git merge** - перенос из локального репозитория в рабочий каталог 
-  * **git pull** - получение удаленного репозитория сразу в рабочий каталог, две предыдущие команды вместе 
- 
- 
-** Установка ** 
-Нормальный клиент здесь- [[https://gitforwindows.org/]]\\ 
-После установки делаем подпись, в "git bash" пишем: 
-<code bash> 
-$ git config --global user.name "YourName" 
-$ git config --global user.mail "YourMail" 
-$ git config --global -- list 
-</code> 
- 
- 
-** Доступ SSH ** 
-Затем настраиваем сертификат, для без парольного доступа.\\ 
-git bash: 
-<code bash> 
-# Генерация ключевой пары (можно: -t rsa -b 4096 -C) 
-$ ssh-keygen -t ed25519 -C "YourEMail" 
-</code> 
- 
-Вводим имя файла, парольную фразу можно не вводить, чтобы не вводить ее при каждом обращении в git\\ 
-После завершения, файлы будут в домашней директории пользователя, помещаем их в "~/.ssh" \\ 
-закрытый ключ переименовываем в "id_rsa" (тут **неясный момент!**)\\ 
-Содержимое открытого ключа (".pub") копируем при создании ключа в лк git'a, там нужно добавить ключ, с содержанием этого открытого ключа\\ 
- 
-Так же нужно добавить созданных ключ агенту авторизации 
-<code bash> 
-$ eval "$(ssh-agent -s)" 
-$ ssh-add ~/.ssh/id_ed25519 
-</code> 
- 
-После пишем: **"$ ssh -T git@github.com"** (можно добавить -vT, для расширенного вывода), для принятия сертификата, в ответе должна фигурировать строка типа: "Hi "YourName"! You've successfully authenticated, but GitHub does not provide shell access", если так, тогда все норм\\ 
- 
-** Траблы с тортилой ** 
- 
-При установке стоило совершить один неверный шаг и выбрать тортилу как транспорт, п*зда, от нее нет спасения, работать она не работает, с таким подходом во всяком случае, и сменить никак не удавалось долгое время, в итоге заменил переменную окружения **GIT_SSH**, установил путь к стандартной утилите ("C:\Program Files\Git\usr\bin\ssh.exe") и заработало.\\ 
- 
- 
-** Использование ** 
-Репозитории создаются и далее привязаны к конкретным каталогам, для работы с репозиторием нужно перейти в его каталог.\\ 
- 
- 
-** Инициализация репозитория ** 
-Переходим в созданный каталог: "**$ git init**"\\ 
- 
- 
-** Добавление файлов ** 
-Добавление в промежуточную область: "**$ git add .**"\\ 
-Точка добавит все, можно указать конкретные, либо маску\\ 
-Просмотр состояния: "**git status**" 
- 
- 
-** Фиксация изменений ** 
-Фиксация изменений в файлах: "**$ git commit -m "text-comment"**"\\ 
-Отмена фиксации: "**$ git reset HEAD~1**"\\ 
- 
- 
-** Удаленный источник ** 
-Добавление: "**$ git remote add origin <repo-url>**"\\ 
-Список доступных: "**$ git remote -v**"\\ 
- 
- 
-** Дополнительно ** 
-<code bash> 
-# Изменения в файлах: 
-$ git diff 
- 
-# История фиксаций:  
-$ git diff- ???? 
- 
-# Мержинг если есть конфликты коммитов 
-$ git merge --allow-unrelated-histories 
-</code> 
- 
- 
-</details> 
  
  
  
develop/gitlab.1662017397.txt.gz · Последнее изменение: 2022/09/01 07:29 — admin