User Tools

Site Tools


сервис_git

Сервис 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 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>: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
  exit 0
done

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

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/

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

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

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

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

val.bmstu.ru

MacBook-Pro-val:conf val$ cat readme.txt

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

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

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

github.com

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

...

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.txt · Last modified: 2021/10/07 07:46 by val