Как правильно организовать среду разработки с git?
Для того чтобы использовать git, в желаемом вами контексте, я бы рекомендовал освоиться со следующими понятиями: 
- origin — центральный репозиторий, через который происходит синхронизация 
- master — по умолчанию это главная, центральная ветка
- .gitignore — файл, в котором можно указать файлы и директории, которые не должны отслеживаться — например локальные конфиги, автоматически генерируемые артефакты,  вендоры, логи и прочий runtime
Таким образом, Вы с коллегами
1. настраиваете локальную dev окружение
2. игнорите конфиги и прочее
3. разрабатываете что-то локально, коммитите 
4. пушите в origin
5. на продакшене делаете clone, настраиваете конфиги
6. повторяете п.п. 3-4 +  pull на продакшене
Это, пожалуй, самая простая схема — реализует то о чём Вы спрашивали.
чтобы один проект был в одном репозитории и можно было организовать там как devlop среду
Для develop и production выделите отдельные ветки.
При решении очередной задачи выносите её тоже отдельной веткой от dev. После того, как решите её и протестируете - сливайте с production-веткойтак и pull'ами отправлять на продакшн прямиком на сервер
Здесь вам уже нужно работать с web hook-ами. Подробнее тут можно почитать:
https://www.digitalocean.com/community/tutorials/h...