Глобальные настройки 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