1. Обычно на 80-м nginx для отдачи статики, а на RoR отправляется обработка динамики. По этой причине не 80.
2. IDE - RubyMine.
3. Синхронизация: можете подключиться к ftp/smb запущеном на линушном компьютере, но это не самая лучшая идея, лучше все таки распределенная VCS типа git, или mercurial. Очень рекомендую вести разработку на системе, максимально похожей на продакшн сервер, иначе лишний геморрой вам обеспечен.
4. На счет git - см. линк
5. >> Меня интересует именно процесс, механика
То, что вы ищете называется CI (Continius Integration), рекомендую посмотреть 2 связанных проекта: gitlab и gitlab-ci
6. >> Меня интересует именно процесс, механика, а так же объяснение всех нюансов почему это важно, а не программирование.
Боюсь тут нюансов на столько много, что можно писать книгу в 10 томах.
Но если в двух словах:
* Следите за качеством кода, 1-е что рекомендую - ввод жесткого кодстайла, иначе когда проект разрастется будет куча времени тратиться на разгребание гуано. В идеале - автоматизированная блокировка говнокода.
* Хорошей практикой является CodeReview: раз в определенный период, или после сложной задачи - код пересматривается с целью его улучшения.
* Код должен быть протестирован. Желательно покрывать тестами код с расчета необходимости, т.е. ответственные части должны быть проверены, перепроверены и еще раз проверены, что нить простенькое достаточно один раз проверить на правильных входных данных.
Рекомендую автоматизировать тестирование - после каждого коммита.
* Выкладка: обычно используются 3 сервера (не обязательно физически): dev, test prod. На dev разрабатывается код, на test - проверяют тестировщики, после исправления ошибок - выполняется выкладка на prod.