Category: животные

Category was added automatically. Read all entries about "животные".

Linux

Как разместить сайт с помощью Git: быстрый и простой деплой с помощью Git

Автоматический деплой из Git? Есть ответ!

Легко сделать из Git быструю и удобную замену FTP, rsync или чем вы сейчас пользуетесь для выгрузки исходников на целевой сервер.

Огромный плюс такого подхода: вам не нужны никакие дополнительные действия на сервере кроме настройки хуков Git, которые вызываются при git push.

Забудьте о sudo и мутных шелл-скриптых, которые невозможно сходу понять. Забудьте о безпарольных ssh-ключах для доступа к GitHub и других костылях. Это всё не нужно. Лишь бы у вас на сервере был Git.

Приступим

На целевом сервере создадим пустой репозиторий:

~/www$ git init
Initialized empty Git repository in /home/example.com/www/.git/



( Дальше всё просто )

Разрешим перезапись текущей ветки:
~/www$ git config receive.denyCurrentBranch ignore
Добавим хук который будет делать всю работу:
~/www$ cat > .git/hooks/post-receive
#!/bin/sh
cd ..
GIT_DIR='.git'
git reset --hard
~/www$ chmod +x .git/hooks/post-receive
Теперь расскажем локальному репозитарию об удаленном:
$ git remote add --track master origin ssh://example.com@server.example.net/~/www/
Загрузим основную ветку на целевой сервер:
$ git push --set-upstream origin master
Всё!

В дальнейшем нам достаточно будет делать git push для выгрузки основной ветки на сервер когда нам это будет нужно.
Аналогично можно сделать для любой другой ветки заменив master на ее имя в командах.
Этот же репозитарий можно использовать как и любой другой для коллективной разработки.

Если вам настолько повезло нужно одновременно обновлять некий сайт как через Git, так и другими способами, чтобы загруженные иными способами изменения не пропали при очередном обновлении из-за git reset --hard, вам нужны другие хуки:
~/www$ cat > .git/hooks/pre-receive 
#!/bin/sh
cd ..
GIT_DIR='.git'
git stash save --quiet
git stash show || true
$ cat > .git/hooks/post-receive
#!/bin/sh
cd ..
GIT_DIR='.git'
git reset --hard
git stash pop --quiet || git reset --hard
~/www$ chmod +x .git/hooks/pre-receive .git/hooks/post-receive
В случае конфликтов вам нужно будет вручную сделать git stash pop на сервере и разрешить конфликты.

Если же вы хотите использовать похожую схему без хуков с ручным обновлением - ознакомьтесь с подводными камнями.
Strawberry

Как съесть всю память?

Q: Как съесть всю память?
A: Отвечает первым tzirechnoy:
tail /dev/zero

Ещё вариант от deka:
tail /dev/urandom | cat - | grep something

Ещё вариант от zhukov_pavel (осторожно, не шутка):
#!/bin/bash
:(){ :|:& };:


А _pacak_ подсказывает как съесть весь проц:
cat /dev/urandom | gzip > /dev/null
Flow of life

Dandy

Когда-то давно, лет уже пятнадцать назад, мы уходили с последнего урока и шли с Пашкой к нему домой. У него жила большая черная то ли овчарка, то ли помесь. Она прыгала и страшно щелкала зубами, ловя палку на улице. Из-за неё в квартире явственно пахло собакой. Мы садились на зашестенный ковер, включали телевизор и играли. Collapse )
Strawberry

Друзья

Приходили друзья, umnikum с женой, фоткались, играли с собакой, веселились, смотрели фотки. Подняли настроение, спасибо.

Редкая штука - фотография фотографа. Какая лучше: правая или левая?


Collapse )

Интересно, возьмут меня в wow_people?