Во-первых, вы можете получить много информации о git в бесплатных онлайн-справочниках:
Примечание. Git "хорошие практики" и рабочий процесс полностью независимы от используемой вами среды IDE. К счастью, IDEA - отличная среда разработки, и большинство полезных функций Git хорошо реализованы (rebase, stash и т. Д.)
О ваших вопросах о git-flow вы думаете как с централизованным VCS.
Git - это Распределенная Система контроля версий. Таким образом, вы должны « сначала думать локально ».
Для коммитов, на самом деле не имеет значения, добавляете ли вы каждый файл в индекс сразу или позже, если вы делаете коммит часто или нет. Это ваша местная работа, и вы можете организовать ее по своему усмотрению.
Важно иметь чистые коммиты, когда вы собираетесь подтолкнуть свою работу (предоставить ее другим разработчикам).
Когда вы собираетесь нажать, вы можете исправить всю свою историю с момента последнего нажатия (например, с помощью rebase).
Например (если вы забыли изменить предыдущий коммит):
- совершить "супер функцию"
- совершить "ups: забыл файл"
- совершить «исправление ошибки»
Перед нажатием этих 3 коммитов вы можете объединить эти коммиты, используя интерактивный ребаз с IDEA. Таким образом, 2 последних коммита будут включены в первый.
Примечание: вы можете изменить свою историю, пока вы не нажали. После того, как вы все еще можете, но это очень плохая идея (и если вы не форсируете Git, следующий толчок будет отклонен), поскольку он может уничтожить историю ваших коллег (если они загрузили / слили вашу работу). *
Об общем рабочем процессе Git, я рекомендую вам эту хорошую статью: http://nvie.com/posts/a-successful-git-branching-model/