質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

4回答

2087閲覧

コミット の粒度がわからない

fork_

総合スコア43

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/07/06 06:49

git初心者です。
gitでコード管理しながらrailsでアプリケーション作成したいのですが、gitのコミット粒度がいまいちわかりません。
いろいろなサイトを拝見していたのですが、「機能ごとにコミットする」、「戻りたいところに戻れるようにコミットする」と記述してありました。
railsの環境構築を終えて、masterブランチから、developmentブランチを作成したところです。
機能追加ごとに、developmentブランチから、 feature/xxx のような形でブランチを作成し、作り終えたらdevelopmentブランチにmergeする認識です。

先にログイン機能から実装を考えているのですが、この時点でfeature/add login functionのようなブランチを作成するべきなのでしょうか。
「機能ごとにコミットする」というのは、Userモデルを作成したらコミット、usersコントローラーを作成したらコミット、という細かい粒度ではなく、モデル作成、コントローラー作成、ビュー作成、ログイン機能に必要なものを実装し終えた後にコミットするという認識なのでしょうか。
実際の開発現場ではどのような粒度でコミットしているのか知りたいです。

掲示板アプリのようなものを作成しようと考えています。

  • ログイン機能(User,Shopの2つの視点でログインする)
    • サインアップ、サインイン、ログアウトが最低限必要とする。
  • 投稿機能
    • Shopとしてログインしている場合のみ投稿、編集、削除ができる
      • タイトルを入力して投稿ができる
      • 画像を添付して投稿ができる。
      • 投稿をデータベースに保存する。
  • いいね機能
    • Shopの投稿に対して、Userがいいね、いいね解除ができる。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/07/06 07:10

>実際の開発現場 組織での使い方を知りたいって感じですかね?自分はソロなんで回答出来ませんが
fork_

2020/07/06 07:14

個人開発のgitの使い方も是非知りたいです。
guest

回答4

0

ベストアンサー

まず最初に、一般的なものが知りたかったらgit ブランチモデルで検索してください

以下はソロ活動前提での自分の場合の意見
形になるまではmasterとdevだけで十分(masterが一般的な開発におけるdevの役割)
作業はdevで行いコミットの単位はエラーの出ない状態で都度コミット
機能作成はひとつずつ順番にやればいいので、feature/xxxxは不要(コミットメッセージに書けばいい)
むしろfeature/xxx作ってあっちこっち気が逸れてOKな状態がNG

一通りの機能を作り終えたリリース以降は、普通にdev派生のfeature/xxxを作って開発・修正。devにマージ。

「機能ごとにコミットする」というのは、Userモデルを作成したらコミット、usersコントローラーを作成したらコミット、という細かい粒度ではなく、モデル作成、コントローラー作成、ビュー作成、ログイン機能に必要なものを実装し終えた後にコミットするという認識なのでしょうか。

前者でしょうね。小まめにコミットしておいて好きなところに戻れるのがメリットだと思うので。

git無し開発に慣れてる事もあって簡単なものならNextCloudのオートセーブで十分間に合ってると感じる人の意見です。なので参考にならないかもしれない

投稿2020/07/06 07:37

編集2020/07/06 07:39
hentaiman

総合スコア6421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fork_

2020/07/06 07:48

なるほどですね。。自分の中でgit運用の指標が出来ました。 ご回答いただき、ありがとうございました。
dodox86

2020/07/06 10:44 編集

>質問者さん 私もローカルリポジトリにおいてかなり頻繁にコミットする方ですが、加えて「rebase」を覚えておくときれいにまとめやすくなり、masterにpushするときに冗長で不要なコミットを除去できて良いと思います。
dodox86

2020/07/06 10:51

> 不要なコミットを除去 自己レスですが、「除去」と書くと消えちゃうイメージが浮かぶので語弊があるかもしれませんね。git rebaseでの「squash」などでのコミットのまとめ上げ、でしょうか。
guest

0

コミットする時、基本的にメッセージを付け加えます。
git commit -m "コミットメッセージ"

後からgit logsで一覧表示した時に、
それに付随するメッセージを確認出来ます。

あれもこれもそれも実装して1コミットに収めると、
メッセージと全く関係のない仕事がこっそり紛れ込んでしまいます。

言ってる事とやってる事が違う人ってどう思いますか?
嘘つき!ってなりますよね。

人間は一貫性を求める生き物なので、
1行で他人に過不足なく説明出来るくらいの粒度にしましょう。
これが丁度良いコミットの単位です。


因みに現場によって決まっている事もあります。

例えばGitHubでは機能要望をIssueという要望掲示板に書き込んで、
プルリクエスト時にこのIssueと関係のある修正だよみたいな使い方が出来ますが、
そのIssueのID番号をコミットメッセージに含めて管理しましょうみたいなプロジェクトもあったりします。

ブランチ切って、プルリクエストを投げる時にコミットをまとめて1個に潰す。
これはこれで一貫性があって美しい管理方法ですね。

こんな風にルールが存在する現場に後から入って、
僕が考える最強のコミット履歴管理方をぶつけると一貫性がなくなりぐちゃぐちゃになりますし、
ルールが無ければ自分の考えるキレイな方法で、あればそれに従う感じになります。

投稿2020/07/06 08:48

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fork_

2020/07/06 08:56

詳細にご回答いただき、ありがとうございます! 実際の現場によっても運用ルールが異なることもあるんですね... > 1行で他人に過不足なく説明出来るくらいの粒度にしましょう。 こちら意識しながら運用していきます。ありがとうございました。。
guest

0

ローカルリポジトリならあなたの好きな粒度にすればいいのでは。
あとでrebaseなりなんなりで綺麗にできますし。

投稿2020/07/06 07:43

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fork_

2020/07/06 07:50

ご回答ありがとうございます。 なるほどですね。。
guest

0

実際の開発現場ではどのような粒度でコミットしているのか知りたいです。

その現場にガイドラインがあればそれに従いましょう。

ない場合、コミットの粒度に決まりはないので好きにやればいい話になりますが、迷うのであればその現場の人にまず相談しましょう。

一般論としてのどうやるのが望ましいのかを漠然と知りたい、ということであれば、GitHubで興味のあるリポジトリ(なるべく世間的な評価が高そうな人のもの)を複数見て参考にすれば良いんじゃないでしょうか。

投稿2020/07/06 07:15

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fork_

2020/07/06 07:47

ご回答ありがとうございます。 実際のリポジトリを見て、理解を深めていきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問