Базовое использование/настройка git на машине разработчика & production-сервере

Keep calm and git rebase

Глобальные настройки git

git config --global user.name "Your Name Here"
git config --global user.email "your_email@example.com"

Добавляем имеющийся проект в git

cd /path/to/Project
git init
git add .
git commit -a -m "Initial commit"

Работа с удаленным (production) сервером

На production-сервере создаем пустой репозиторий, куда зальём содержимое репозитория с машины для разработки (dev-):

mkdir /path/to/Project && cd /path/to/Project
git init
git config receive.denyCurrentBranch warn

Последней командой разрешаем заливать в репозиторий текущую ветку (чтобы иметь возможность залить ветку master из dev-).

Загружаем содержимое dev-репозитория на production-сервер, команду выполняем на dev-машине:

git push ssh://production.server/path/to/Project master

Чтобы в будущем, делая push, не писать длинный URL, присваиваем ему название production:

git remote add production ssh://production.server/path/to/Project

Впоследствие, достаточно команды:

git push production

Создаём ветку production на production-сервере, все изменения из всех веток должны сливаться (merge) с ней:

cd /path/to/Project
git checkout -b production

Разработка и деплой

На dev-машине:

git checkout -b new_feature
…working hard
git commit
git push production

на production:

git merge new_feature