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

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


develop:git

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
develop:git [2023/08/03 10:41]
admin
develop:git [2024/09/06 10:50] (текущий)
admin
Строка 29: Строка 29:
 # Добавить удаленный репозиторий # Добавить удаленный репозиторий
 git remote add <name> (или origin для репы по умолчанию) https://github/uset/repo git remote add <name> (или origin для репы по умолчанию) https://github/uset/repo
 +  # например
 +git remote add origin git@github.com:ncily/gh_actions.git
 +
  
   # Отправка проекта   # Отправка проекта
Строка 41: Строка 44:
 git pull [origin] git pull [origin]
 git checkout [master] git checkout [master]
 +
 +  # Проверка ключа 
 +ssh -T git@github.com
 +ssh -vT git@github.com
 +
 +  # Авторизация по SSH
 +После создания пары ключей SSH вам необходимо добавить открытый ключ на GitHub.com, чтобы включить доступ по SSH для вашей учетной записи
 +В параметрах уч записи в ГХ, добавляем SSH-ключ, саписываем туда содержимое файла ".ssh/id_rsa.pub" нужно учетки
 +После этого, проверяем авторизацию командой "ssh -T git@github.com"
 </code> </code>
  
Строка 82: Строка 94:
  # Слитые [не слитые] ветки  # Слитые [не слитые] ветки
 git branch --merged [--no-merged] [name] git branch --merged [--no-merged] [name]
- # Удалить (удалится только слитая ветка)+ # Удалить (удалится только слитая ветка, -D для удаления не слитых)
 git branch -d <name> git branch -d <name>
 git branch --all git branch --all
Строка 164: Строка 176:
 ./execute_on_all_repos.sh git push origin --delete 1854_norm ./execute_on_all_repos.sh git push origin --delete 1854_norm
  # Удалить локальную ветку  # Удалить локальную ветку
-git branch --delete 1854_norm +git branch --delete -D 1854_norm 
-./execute_on_all_repos.sh git branch --delete 1854_norm+./execute_on_all_repos.sh git branch --delete -D 1854_norm
  
  
Строка 181: Строка 193:
 // автосгенерированный либо релизный тег // автосгенерированный либо релизный тег
 git describe --match=[0-9]* --abbrev=8 | tr -s '\r\n' ' ' | sed 's/ //g' git describe --match=[0-9]* --abbrev=8 | tr -s '\r\n' ' ' | sed 's/ //g'
 +</code>
 +</details>
 +
 +
 +<details>
 +<summary> :!: Интеграция GitHub и Jenkins</summary>
 +[[https://www.blazemeter.com/blog/how-to-integrate-your-github-repository-to-your-jenkins-project|Источник]]\\
 +
 +:!: SCM (Source Control Management)
 +
 +Один из вариантов в проекте ГХ создаем вебхук, с указанием адреса дженкинса, указываем по каким событиям отправлять триггер, в дженкинс.\\
 +Затем в джобе дженкинса, указываем адрес репозитория, в "Build Trigger", "GitHub hook trigger for GITScm polling" и вроде как все\\
 +
 +
 +В тоже время есть и другие варианты "Build Trigger", возможно в них можно обойтись без вебхука на стороне ГХ и указания адреса дженкинса\\
 +Так, чтобы работать из репы, нужно код пайплайна разместить там и выбрать "Pipeline script from SCM"
 +</details>
 +
 +
 +<details>
 +<summary> :!: Экспорт из GitLab в GitHub</summary>
 +Работает в т.ч. и как актуализация уже существующего экспорта в GH\\
 +[[https://stackoverflow.com/questions/22265837/transfer-git-repositories-from-gitlab-to-github-can-we-how-to-and-pitfalls-i|Source]]\\
 +[[https://github.com/piceaTech/node-gitlab-2-github|Source2]]\\
 +
 +<code bash>
 +  # from gitLab
 +git clone --mirror git@your-gitlab-site.com:username/repo.git
 +
 +cd repo
 +  # to gitHub
 +git push --no-verify --mirror git@github.com:username/repo.git
 </code> </code>
 </details> </details>
Строка 192: Строка 236:
 </code> </code>
 </details> </details>
 +
 +
 +
 +
  
  
Строка 281: Строка 329:
 $ git merge --allow-unrelated-histories $ git merge --allow-unrelated-histories
 </code> </code>
 +</details>
 +
 +
 +===== Применение =====
 +<details>
 +<summary>:!: Кейсы</summary>
 +**Сборка с незасабмиченным топиком из геррита**\\
 +Переходим в начальную ветку, например мастер, на вкладке геррите ищем по ИД нужный коммит, важно, нужно начинать с последнего коммита в этом топике, в этот репозиторий, можно посмотреть по порядковому номеру, есть в url\\
 +Находим последний коммит, чекаутимсяв него, после этого, на вкладке гита, уже будут присутствовать все предыдущие коммиты этого топика, в этой репе\\
 +Если есть коммиты из другой репы, аналогично, находим последний, чекаутимся, проверяем что в гите есть все предыдущие\\
 +Создаем ветку, пушим ее\\
  
  
Строка 286: Строка 345:
  
  
 +<details>
 +<summary>:!: Пример слияния репозиториев</summary>
 +Точнее включение одного репозитория в другой, подпроектом\\
  
 +<code bash>
 +# Клонируем тот репозиторий, который будет мержиться
 +git clone https://github.com/first-repo
 +cd first-repo
 +git remote rm origin # На всякий случай отвязываем репозиторий 
 + 
 +# Подготавливаем репозиторий: перемещаем всё содержимое репозитория (за исключением папки .git) в отдельную папку, которая и будет подключаться в другой репозиторий
 +mkdir first_repo
 +git mv $(ls -A | grep -v first_repo | grep -v .git) first_repo/ 
 +git commit -m "prepare repo for merging in main_repo - move all to new subdir"
 + 
 +# Клонируем рядом целевой репозиторий
 +cd ..
 +git clone https://github.com/main_repo
 +cd main_repo/
 + 
 +# Подключаем к нему подготовленный первый репозиторий и вытаскиваем его master в отдельную ветку first-repo
 +git remote add first-repo ../first-repoe/
 +git fetch first-repo
 +git branch first-repo remotes/first-repo/master
 + 
 +# Мержим ветку в локальный master
 +git merge first-repo --allow-unrelated-histories
 +git remote rm first-repo
 + 
 +# Проверяем и пушим
 +git log 
 +git push
 +</code>
 +</details>
  
  
 +
 +<details>
 +<summary> :!: Cмена Remote</summary>
 +
 +<code bash>
 +git remote -v
 +# View existing remotes
 +# origin  https://github.com/user/repo.git (fetch)
 +# origin  https://github.com/user/repo.git (push)
 +
 +git remote set-url origin https://github.com/user/repo2.git
 +# Change the 'origin' remote's URL
 +
 +git remote -v
 +# Verify new remote URL
 +# origin  https://github.com/user/repo2.git (fetch)
 +# origin  https://github.com/user/repo2.git (push)
 +</code>
 +</details>
  
  
 =====  ===== =====  =====
develop/git.1691059295.txt.gz · Последнее изменение: 2023/08/03 10:41 — admin