User Tools

Site Tools


сервис_git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
сервис_git [2021/10/07 07:46]
val [Пример с использованием cron]
сервис_git [2023/09/14 15:26]
val [On-Premise gitlab]
Line 1: Line 1:
 ====== Сервис Git ====== ====== Сервис Git ======
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Git|Git - Википедия]]
  
   * [[https://​git-scm.com/​book/​ru/​v2/​|The entire Pro Git book (на русском)]]   * [[https://​git-scm.com/​book/​ru/​v2/​|The entire Pro Git book (на русском)]]
Line 7: Line 9:
   * [[https://​git-lfs.github.com/​|An open source Git extension for versioning large files]]   * [[https://​git-lfs.github.com/​|An open source Git extension for versioning large files]]
  
 +  * [[https://​www.theserverside.com/​feature/​Why-GitHub-renamed-its-master-branch-to-main|Why GitHub renamed its master branch to main]]
 +
 +  * [[https://​youtu.be/​SEvR78OhGtw|youtube/​Артем Матяшов/​Git. Большой практический выпуск (youtube)]]
 ===== Работа с локальным репозиторием ===== ===== Работа с локальным репозиторием =====
  
Line 27: Line 32:
  
 server:​~/​conf$ git status server:​~/​conf$ git status
 +
 +server:​~/​conf$ git config --global user.email "​student@corpX.un"​
 +server:​~/​conf$ git config --global user.name "​FIO"​
  
 server:​~/​conf$ git commit -a -m 'ver: 1.1' server:​~/​conf$ git commit -a -m 'ver: 1.1'
Line 40: Line 48:
 server:​~/​conf$ git log server:​~/​conf$ git log
  
-server:​~/​conf$ git log --follow -- file1+server:​~/​conf$ git log --follow -- file1     В каких коммитах менялся файл
  
-server:​~/​conf$ git show <commit hash>:file1+server:​~/​conf$ git show <commit hash> ​       ​Все изменения файлов в этом коммите по 
  
-server:​~/​conf$ git diff <commit hash> file1+server:​~/​conf$ git show <commit hash>:​file1 ​ Содержимое файла в этом коммите 
 + 
 +server:​~/​conf$ git show <commit hash> file1  Изменения файла между этим и предыдущим коммитом 
 + 
 +server:​~/​conf$ git diff <commit hash> file1  ​Изменения файла после этого коммита 
 + 
 +server:​~/​conf$ git diff <commit hash N> <commit hash M>
  
 server:​~/​conf$ git diff <commit hash N> <commit hash M> file1 server:​~/​conf$ git diff <commit hash N> <commit hash M> file1
Line 62: Line 76:
   git add .   git add .
   git --no-optional-locks status | grep '​modified\|deleted\|new file\|renamed'​ | git commit -a -F - > /dev/null   git --no-optional-locks status | grep '​modified\|deleted\|new file\|renamed'​ | git commit -a -F - > /dev/null
-  exit 0 
 done done
 +
 +exit 0
 </​code>​ </​code>​
  
-===== Подготовка сетевого http репозитория =====+===== Создание ​сетевого http/ssh git репозитория =====
 <​code>​ <​code>​
 server:~# mkdir /​var/​www/​html/​conf.git server:~# mkdir /​var/​www/​html/​conf.git
Line 77: Line 92:
  
 server#:/​var/​www/​html/​conf.git#​ chmod a+x hooks/​post-update server#:/​var/​www/​html/​conf.git#​ chmod a+x hooks/​post-update
 +</​code>​ 
 +Не обязательно,​ но, если хочется видеть содержимое текущего репозитория по http, можно поправить hooks/​post-update  
 +<​code>​
 server#:/​var/​www/​html/​conf.git#​ cat hooks/​post-update server#:/​var/​www/​html/​conf.git#​ cat hooks/​post-update
-</​code><​code>​+</​code>​ 
 +!!! exec должна быть последняя команда 
 +<​code>​
 ... ...
 +#exec git update-server-info
 git update-server-info git update-server-info
  
 rm -rf conf rm -rf conf
  
-exec git clone http://​server.corpX.un/​conf.git+exec git clone http://​server.corpX.un:81/conf.git
 </​code><​code>​ </​code><​code>​
 server:~# chown -R student /​var/​www/​html/​conf.git/​ server:~# chown -R student /​var/​www/​html/​conf.git/​
 </​code>​ </​code>​
 +
 +  * Обновление [[#​Персонального http/ssh git репозитория]]
  
 ===== Обновление сетевого репозитория из локального ===== ===== Обновление сетевого репозитория из локального =====
  
-==== Использование ​персонального репозитория ====+  * [[https://​dzen.ru/​a/​YufH0P_uAEpuxnPg|Работа с тегами Git: создание,​ удаление,​ использование]] 
 +==== On-Premise gitlab ==== 
 + 
 +  * [[https://​stackoverflow.com/​questions/​6565357/​git-push-requires-username-and-password|Git push requires username and password]] 
 + 
 +<​code>​ 
 +$ git remote -v 
 + 
 +$ git remote remove origin 
 +$ ### git remote rename origin old-origin 
 + 
 +$ git remote add origin http://​server.corpX.un/​student/​dhcp.git 
 +$ ### git remote add origin http://​server.corpX.un:​3000/​student/​dhcp.git 
 +$ ### git remote add origin git@server.corpX.un:​student/​gowebd.git 
 + 
 +$ git branch 
 + 
 +$ ### git config credential.helper store 
 + 
 +$ git push origin master 
 + 
 +$ ### cat ~/​.git-credentials 
 + 
 +$ git tag ver1.2 
 + 
 +$ git push origin ver1.2 
 + 
 +$ git tag 
 +</​code>​ 
 + 
 +==== github.com ==== 
 +<​code>​ 
 +gate:​~/​zabbix_dhcp_pools$ git remote add origin https://​github.com/​valbmsturu/​zabbix_dhcp_pools.git 
 + 
 +gate:​~/​zabbix_dhcp_pools$ git push -u origin master 
 +</​code>​ 
 + 
 +==== Персонального ​http/ssh git репозитория ====
 <​code>​ <​code>​
 server:​~/​conf$ git remote add origin file:///​var/​www/​html/​conf.git server:​~/​conf$ git remote add origin file:///​var/​www/​html/​conf.git
Line 114: Line 172:
  
 server:​~/​conf$ git push origin master server:​~/​conf$ git push origin master
-</​code>​ 
-==== github.com ==== 
-<​code>​ 
-gate:​~/​zabbix_dhcp_pools$ git remote add origin https://​github.com/​valbmsturu/​zabbix_dhcp_pools.git 
- 
-gate:​~/​zabbix_dhcp_pools$ git push -u origin master 
 </​code>​ </​code>​
  
 ==== val.bmstu.ru ==== ==== val.bmstu.ru ====
 <​code>​ <​code>​
-MacBook-Pro-val:​conf val$ cat readme.txt+~/confval$ cat readme.txt
 </​code>​ </​code>​
  
 ===== Клонирование и обновление локального репозитория из сетевого ===== ===== Клонирование и обновление локального репозитория из сетевого =====
  
-==== Использование персонального репозитория ====+==== On-Premise gitlab ==== 
 +<​code>​ 
 +# git clone http://​server.corpX.un/​student/​dhcp.git 
 + 
 +  или 
 + 
 +student@gate:​~/​dhcp$ git pull origin master 
 +</​code>​ 
 + 
 +==== github.com ==== 
 +<​code>​ 
 +# git clone https://​github.com/​valbmsturu/​zabbix_dhcp_pools.git 
 + 
 +... 
 +</​code>​ 
 + 
 +==== Персонального ​http/ssh git репозитория ====
 <​code>​ <​code>​
-gate.isp.un:​~$ git clone http://​server.corpX.un/​conf.git+gate.isp.un:​~$ git clone http://​server.corpX.un:81/conf.git
  
 gate.isp.un:​~$ cd conf/ gate.isp.un:​~$ cd conf/
Line 141: Line 209:
 gate.isp.un:​~/​conf$ less dir1/file2 gate.isp.un:​~/​conf$ less dir1/file2
 </​code>​ </​code>​
-==== github.com ==== 
-<​code>​ 
-# git clone https://​github.com/​valbmsturu/​zabbix_dhcp_pools.git 
  
-... 
-</​code>​ 
 ==== val.bmstu.ru ==== ==== val.bmstu.ru ====
 <​code>​ <​code>​
Line 154: Line 217:
 </​code>​ </​code>​
  
-===== Работа с версиями =====+===== Работа с ветками ===== 
 + 
 +  * [[https://​stackoverflow.com/​questions/​2003505/​how-do-i-delete-a-git-branch-locally-and-remotely|How do I delete a Git branch locally and remotely?​]] 
 +  * [[https://​stackoverflow.com/​questions/​10312521/​how-do-i-fetch-all-git-branches|How do I fetch all Git branches?​]] 
 +==== Пример с тестовой веткой ==== 
 +<​code>​ 
 +λ git branch test 
 + 
 +λ git branch -a 
 + 
 +λ git checkout test 
 + 
 +... edit ... add ... commit ...  
 + 
 +λ git push origin test 
 + 
 +root@server:​~/​openvpn1#​ git pull origin test 
 +root@server:​~/​openvpn1#​ ansible-playbook ... test_nodes 
 +   или 
 +... ci/cd test ... 
 + 
 + 
 +λ git checkout main 
 +λ git checkout master 
 + 
 +λ git merge test 
 + 
 +... commit ... 
 + 
 +λ git push -u origin main 
 +λ git push -u origin master 
 + 
 +... ci/cd prod ... 
 + 
 +λ git push -d origin test 
 +λ git branch -d test 
 + 
 +val@bro:​~/​conf$ git fetch --all 
 +</​code>​ 
 + 
 +==== Пример установки ПО ====
  
 <​code>​ <​code>​
сервис_git.txt · Last modified: 2023/09/14 15:37 by val