Как я могу настроить удаленные каталоги в Git, где я могу локально передать ветку stage на удаленный компьютер и увидеть живые изменения на промежуточном сервере, например stage.example.com?
Понятие, которое я имею(часть того, почему я ухожу от SVN) заключается в том, что я могу поддерживать (локально) 3 разных «главных» ветки следующим образом:
- master - используется для локальной разработки,рабочий каталог
- stage - должен синхронизироваться с каталогом промежуточного сервера (удаленно)
- live - это должен быть общедоступный веб-сайт (remote)
Идея, которую я имею (и, как утверждают другие, возможна), заключается в том, что я могу поддерживать эти удаленные "сайты" с моего локального компьютера без необходимости постоянного входа в оболочку удаленного сервера и запуска svn update
(в моем текущем рабочем процессе SVN я должен делать это все время ...) или, конечно, в моем рабочем процессе Git запустить git pull
на удаленном.
Как я могу настроить удаленные каталоги, чтобы я моглокально подтолкнуть мой stage
Бранкh к staging remote server
и посмотрите изменения (например) stage.example.com
прямо сейчас?
Затем, когда stage
все в порядке и проверено, я просто смогу на местена push
на live
пульт дистанционного управления для внесения изменений, которые я протестировал на stage
на действующем веб-сайте.
Можно ли это даже сделать, или я получаю сумасшедшие идеи, которых просто нетпредполагается сделать с помощью Git?
В случае, если это важно, вот несколько статистических данных о моих локальных и удаленных серверах:
remote server: Dreamhost (shared account)
remote GIT version: 1.7.1.1
remote GIT client: shell
local computer: Mac Pro (Snow Leopard 10.6.6)
local GIT version: 1.7.2.3
local GIT client: Tower.app // git-tower.com
Кроме того, пока у меня неудачно пробовал следующий рабочий процесс:
- Создание
--bare
Git репо на удаленном компьютере (чтобы я мог получить к нему доступ из любого места) - Клонирование этого удаленного репо в локальный каталоги использовать приложение Git Tower для управления им
- Работать локально в
master (HEAD)
scp -r
копировать репозиторий --bare
git с удаленного сервера в мой удаленный рабочий домен stage.example.com
- Добавьте удаленный к локальной рабочей копии, а затем попробуйте нажать на
origin/stage
Ясно, что это не работает, но я не знаю, почему и как это сделать лучше.
Исходя из опыта работы с SVN, я новичок в Git, но просмотрел множество уроков (Peepcode & ThinkVitamin) , но все еще не может понять, как это настроить.