Мне кажется, что здесь сложно дать однозначный ответ. Для начала, каждый разработчик должен изучить основные принципы и команды Git. Я много раз сталкивался (и продолжаю сталкиваться) с тем, что разработчики заучивают 2-3 команды (git commit/git pull/git push) и просто долбят их вообще не понимая, что эти команды делают. IDE делают этот процесс еще хуже, потому что там даже не надо задумываться над тем, что вбиваешь, разработчик просто нажимает кнопочку и получает грязь в репозитории. А потом в Slack-чате кричит: «Я все сделал по бумажке! Как мне сказали, сделал git commit и git push, это ваш долбаный git напортачил!» (на самом деле слышал такое и не раз).
Затем можно сделать репозиторий например, с ветками master и ветками, в которые разработчики добавляют новые фичи (или исправляют баги). Например, add-new-image-upload
. Так называемые feature-branch'и. При заканчивании работы в feature-бранче, сливать их с master. Высший пилотаж — делать rebase перед слиянием, чтобы не загромождать историю бесполезными merge commits. Еще боле высший пилотаж — перейти на git-flow, который автоматизирует работу с бранчами master, development, feature branches, hotfixes, release branches. Но забегать вперед не стоит.