0.00
0 читателей, 8 топиков

Работа с ветками

Создаем ветку
git checkout -b trailer


git remote -v
master  ssh://server/var/git/repo.git (fetch)
master  ssh://server/var/git/repo.git (push)


Заливаем в удаленный репозиторий
git push master trailer


Выкачиваем
git fetch 
git checkout -b trailer origin/trailer

Подсветка синтаксиса git

Чтобы включить весь предустановленный цветной вывод для терминала, установите color.ui в true:
$ git config --global color.ui true


Когда установлено это значение, Git раскрашивает свой вывод в случае, если вывод идёт на терминал.

Как переместить боевой сайт в git репозиторий

Итак для начала инициализируем на сервере путой репозиторий:
$ cd /home/repositories/
$ mkdir site.ru.git
$ cd site.ru.git
$ git init --bare
Initialized empty Git repository in /home/repositories/


Затем переходим на хостинге в папку сайта и тоже инициализируем гит
$ cd /home/srv28565/htdocs/site.ru
$ git init
$ git config --global user.email 'prokopov-nikolaj@yandex.ru'
$ git config --global user.name 'Prokopov Nikolai'
$ git add .
$ git commit -m "Импорт всех существующих файлов сайта"
$ git remote add master ssh://root@121.120.22.36/home/repositories/site.ru.git
$ git push origin master

Git фишки или экспорт файлов в git

Экспорт изменений сделанных в определенном коммите

git diff-tree -r commintId --no-commit-id --name-only --diff-filter=ACMRT | xargs tar -rf $(date +%Y.%m.%d-%H%M).tar

commintId — хэш коммита
Все файлы будут экспортированы в tar архив название которого состоит и текущей даты и времени. При этом это архив удобен тем что содержит в себе файлы в структуре проекта, что значительно облегчит выкладыку данных на сервер.

Экспорт файлов подготовленных к комиту. Экспорт по статусу файлов

git status | grep 'modified' | awk '{print ($3)}' | xargs tar -rf $(date +%Y.%m.%d).tar ; git status | grep 'new file' | awk '{print ($4)}' | xargs tar -rf $(date +%Y.%m.%d).tar

Приведенная комманда экспортирует файлы имеющие статус 'modified' или 'new file'. Такая операция экпорта файлов в структуре проекта может потребовать когда перед боевым сервером вы выкладываете текущие изменения на тестовый. После успешной проверки можно будет сделать push файлов.