・Gitのブランチは、1ブランチ1PC(名)で開発する事。
1ブランチを複数PC(名)で開発すると、α側でpush したタイミングで、β側はrebase しなければcommit、pushが出来ない。
逆に言えば、複数PC(1名)の場合、α側で開発後(中途半端でも)必ずpushし、β側で開発前にpull することで解決する。
(1人だったら、マージも簡単かもしれんが…)
そう考えるとWebの場合、下記のパターンで開発するのが良いかも?
A. 1.UIとサーバーとSQL等(縦割り)で機能を分断し、人毎にブランチを作成する。
2.各機能が完成した時に、機能毎にブランチを作成しマージする。
3.マスターブランチには、2.でテストした機能毎にマージする。
B. 1.機能毎(横割り)にブランチを作成する。
2.他人事のブランチは機能内で適当にやらせる。
3.マスターブランチには、1.でテストした機能毎にマージする。
人を主体にするか、機能を主体にするかの違いだけだが、個人的には重要だと思う。
ただ、どちらにせよブランチと機能を紐づけると、細かくなりすぎるので管理が難しくなる。
2014年4月時点:
Gitを使って数か月だが、個人的には、日本人の管理方法・プログラマの能力等々を考えると、Gitは扱いづらい。
逆に言えば、個々のプログラマの能力がとても高ければ、とても使いやすいものになると思う。
ま、日本はプログラマ軽視社会だから、無理だろうけどねぇ…
2014年5月21日追記:
ネットをさまよっていると、「1つのブランチを1人で作業するなら…」的な記述を目にすることがあります。
何で「1人1ブランチ」の概念に行きつかないんだろう…?何のためのmerge機能なの?何のためのrebase機能なの?
そもそもGitって、1機能毎にブランチを作成するもんじゃないの?1つのブランチが数週間以上も稼働し続けてる時点でやり方間違ってるでしょ…
とか思ってしまいます。
SVNやCVSの間隔から抜けられない人たちなのだろうなぁ…と思っているのですが、実際どうなのでしょう…
私が間違ってる可能性も十分ある。
ただ「Git はオブジェクト指向と同じだと思ってます。ブランチはメソッド的な考えが良いと思う」と考えてます。
要するに「1メソッド1機能(1ブランチ1機能)」「1メソッドが100行とか書かない」のと同じで、「1ブランチは数日で実装可能な単位にする(最大でも半月(10日)」が良いと思ってます。
プロジェクト全体のブランチ作成は、この考え方が良いと思った。
今のプロジェクトにはもう無理だが、次からはこの考え方で行きたい。
しかし、もう4年前なのね…orz
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html
1ブランチを複数PC(名)で開発すると、α側でpush したタイミングで、β側はrebase しなければcommit、pushが出来ない。
逆に言えば、複数PC(1名)の場合、α側で開発後(中途半端でも)必ずpushし、β側で開発前にpull することで解決する。
(1人だったら、マージも簡単かもしれんが…)
そう考えるとWebの場合、下記のパターンで開発するのが良いかも?
A. 1.UIとサーバーとSQL等(縦割り)で機能を分断し、人毎にブランチを作成する。
2.各機能が完成した時に、機能毎にブランチを作成しマージする。
3.マスターブランチには、2.でテストした機能毎にマージする。
B. 1.機能毎(横割り)にブランチを作成する。
2.他人事のブランチは機能内で適当にやらせる。
3.マスターブランチには、1.でテストした機能毎にマージする。
人を主体にするか、機能を主体にするかの違いだけだが、個人的には重要だと思う。
ただ、どちらにせよブランチと機能を紐づけると、細かくなりすぎるので管理が難しくなる。
2014年4月時点:
Gitを使って数か月だが、個人的には、日本人の管理方法・プログラマの能力等々を考えると、Gitは扱いづらい。
逆に言えば、個々のプログラマの能力がとても高ければ、とても使いやすいものになると思う。
ま、日本はプログラマ軽視社会だから、無理だろうけどねぇ…
2014年5月21日追記:
ネットをさまよっていると、「1つのブランチを1人で作業するなら…」的な記述を目にすることがあります。
何で「1人1ブランチ」の概念に行きつかないんだろう…?何のためのmerge機能なの?何のためのrebase機能なの?
そもそもGitって、1機能毎にブランチを作成するもんじゃないの?1つのブランチが数週間以上も稼働し続けてる時点でやり方間違ってるでしょ…
とか思ってしまいます。
SVNやCVSの間隔から抜けられない人たちなのだろうなぁ…と思っているのですが、実際どうなのでしょう…
私が間違ってる可能性も十分ある。
ただ「Git はオブジェクト指向と同じだと思ってます。ブランチはメソッド的な考えが良いと思う」と考えてます。
要するに「1メソッド1機能(1ブランチ1機能)」「1メソッドが100行とか書かない」のと同じで、「1ブランチは数日で実装可能な単位にする(最大でも半月(10日)」が良いと思ってます。
プロジェクト全体のブランチ作成は、この考え方が良いと思った。
今のプロジェクトにはもう無理だが、次からはこの考え方で行きたい。
しかし、もう4年前なのね…orz
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html