Основная функция git checkout это перемещать указатель HEAD, т.е. то куда смотрит ваша локальная копия. Вы можете переместить его на вершину ветки: git checkout <branch> или на отдельный коммит: git checkout <sha>Ну а вспомогательные это создание веток:git checkout -b, отмена изменений в файле:git checkout -- <file>
Итоговый результат слияния кода при merge и rebase одинаковый. Разница будет только в порядке коммитов в истории. Merge сверху применяет новые коммиты, rebase находит общего предка, убирает ваши новые коммиты в ветке, обновляет ветку, применяет ваши новые коммиты сверху.
История изменений. Возможность возврата к любому коммиту, вернуть что удалил если вдруг понадобилось снова. Та и обновлять проще с гитом, чем каждый раз архив лить.
Как и для других сайтов. Ставишь новую версию пыхи, переключаешь апач/нджинкс на новую пыху. В зависимости от разницы между версиями, офигеваешь от сломанного сайта и ошибок. Откатываешься назад, ибо обычно просто так апнуть версию без изменения кода не получиться. Поднимаешь версию для разработки на тестовом сервере с новой пыхой, фиксишь/обновляешь код, потом выливаешь это на прод и обновляешь пыху снова. Если руки прямые и из плеч то должно получиться.