User Tools

Site Tools


сервис_git

This is an old revision of the document!


Сервис Git

Работа с локальным репозиторием

  • Вместо каталога conf/ можно использовать /etc/ или /srv/tftp/
server:~$ mkdir conf

server:~$ cd conf/

server:~/conf$ echo Hello World > file1

server:~/conf$ mkdir dir1

server:~/conf$ echo Hello World 2 > dir1/file2

server:~/conf$ git init

server:~/conf$ git add .

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$ echo Hello World 3 > file1

server:~/conf$ git status

server:~/conf$ git add -v .

server:~/conf$ git --no-optional-locks status | grep 'modified\|deleted\|new file\|renamed' | git commit -a -F -

server:~/conf$ git log

server:~/conf$ git log --follow -- file1     В каких коммитах менялся файл

server:~/conf$ git show <commit hash>        Все изменения файлов в этом коммите по 

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> file1

Пример с использованием cron

# cat /etc/cron.daily/my-git-etc
#!/bin/sh

for d in /etc/ /root/
do
  cd $d
  [ -d $d/.git ] || git init > /dev/null
  git add .
  git --no-optional-locks status | grep 'modified\|deleted\|new file\|renamed' | git commit -a -F - > /dev/null
done

exit 0

Подготовка сетевого http/ssh репозитория

server:~# mkdir /var/www/html/conf.git

server:~# cd /var/www/html/conf.git

server#:/var/www/html/conf.git# git init --bare

server#:/var/www/html/conf.git# mv hooks/post-update.sample hooks/post-update

server#:/var/www/html/conf.git# chmod a+x hooks/post-update

server#:/var/www/html/conf.git# cat hooks/post-update
...

git update-server-info

rm -rf conf

exec git clone http://server.corpX.un/conf.git
server:~# chown -R student /var/www/html/conf.git/

Обновление сетевого репозитория из локального

On-Premise gitlab

$ git remote add origin http://172.16.1.13/student/project1.git

$ git push origin master

github.com

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

Использование персонального http/ssh репозитория

server:~/conf$ git remote add origin file:///var/www/html/conf.git

server:~/conf$ git remote -v

server:~/conf$ git remote rm origin

server:~/conf$ git remote add origin ssh://student@server.corpX.un/var/www/html/conf.git

server:~/conf$ git push origin master

server:~/conf$ echo Hello World 4 > dir1/file2

server:~/conf$ git status

server:~/conf$ git add -v .

server:~/conf$ git commit -a -m 'ver: 1.3'

server:~/conf$ git push origin master

val.bmstu.ru

~/conf# val$ cat readme.txt

Клонирование и обновление локального репозитория из сетевого

On-Premise gitlab

$ git clone http://172.16.1.13/student/project1.git

github.com

# git clone https://github.com/valbmsturu/zabbix_dhcp_pools.git

...

Использование персонального http/ssh репозитория

gate.isp.un:~$ git clone http://server.corpX.un/conf.git

gate.isp.un:~$ cd conf/

gate.isp.un:~/conf$ less dir1/file2

gate.isp.un:~/conf$ git pull origin master

gate.isp.un:~/conf$ less dir1/file2

val.bmstu.ru

$ git clone http://val.bmstu.ru/unix/conf.git

...

Работа с версиями

# dpkg -l | grep mediawiki
ii  mediawiki                     1:1.31...
...

# cd /var/lib/mediawiki/extensions/

# git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/UserMerge

# cd UserMerge/

# git branch -r

# git checkout REL1_31
сервис_git.1655184620.txt.gz · Last modified: 2022/06/14 08:30 by val