質問: git初心者です。 gitでコード管理しながらrailsでアプリケーション作成したいのですが、gitのコミット粒度がいまいちわかりません。 いろいろなサイトを拝見していたのですが、「機能ごとにコミットする」、「戻りたいところに戻れるようにコミットする」と記述してありました。 railsの環境構築を終えて、masterブランチから、developmentブランチを作成したところです。 機能追加ごとに、developmentブランチから、 feature/xxx のような形でブランチを作成し、作り終えたらdevelopmentブランチにmergeする認識です。 先にログイン機能から実装を考えているのですが、この時点でfeature/add login functionのようなブランチを作成するべきなのでしょうか。 「機能ごとにコミットする」というのは、Userモデルを作成したらコミット、usersコントローラーを作成したらコミット、という細かい粒度ではなく、モデル作成、コントローラー作成、ビュー作成、ログイン機能に必要なものを実装し終えた後にコミットするという認識なのでしょうか。 実際の開発現場ではどのような粒度でコミットしているのか知りたいです。 掲示板アプリのようなものを作成しようと考えています。 * ログイン機能(User,Shopの2つの視点でログインする) * サインアップ、サインイン、ログアウトが最低限必要とする。 * 投稿機能 * Shopとしてログインしている場合のみ投稿、編集、削除ができる * タイトルを入力して投稿ができる * 画像を添付して投稿ができる。 * 投稿をデータベースに保存する。 * いいね機能 * Shopの投稿に対して、Userがいいね、いいね解除ができる。
回答: まず最初に、一般的なものが知りたかったら`git ブランチモデル`で検索してください 以下はソロ活動前提での自分の場合の意見 形になるまではmasterとdevだけで十分(masterが一般的な開発におけるdevの役割) 作業はdevで行いコミットの単位はエラーの出ない状態で都度コミット 機能作成はひとつずつ順番にやればいいので、feature/xxxxは不要(コミットメッセージに書けばいい) むしろfeature/xxx作ってあっちこっち気が逸れてOKな状態がNG 一通りの機能を作り終えたリリース以降は、普通にdev派生のfeature/xxxを作って開発・修正。devにマージ。 > > 「機能ごとにコミットする」というのは、Userモデルを作成したらコミット、usersコントローラーを作成したらコミット、という細かい粒度ではなく、モデル作成、コントローラー作成、ビュー作成、ログイン機能に必要なものを実装し終えた後にコミットするという認識なのでしょうか。 > > > 前者でしょうね。`小まめにコミットしておいて好きなところに戻れる`のがメリットだと思うので。 git無し開発に慣れてる事もあって簡単なものならNextCloudのオートセーブで十分間に合ってると感じる人の意見です。なので参考にならないかもしれない