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

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

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

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

Q&A

解決済

6回答

4292閲覧

ブランチを切らずに開発を進めるのはどういった時か

jelatto

総合スコア11

Git

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

0グッド

3クリップ

投稿2019/05/17 22:58

編集2020/05/11 11:32

前提・実現したいこと

閲覧ありがとうございます。
もしかしたらTeratailで質問する内容にそぐわないかもしれませんが、
Gitについて質問させていただければと思います。

現在の職場でGitを使ってチーム開発をしています。
しかし、ブランチを切って作業している人が一人もおらず、みなさんMasterブランチを直接編集しています。

私は以前の職場でどんなに細かい作業でもブランチを切り、プルリクを作り上司にコードレビューしてもらってからMasterとマージしpushするようにしていました。
かつ余計なコンフリクトが発生しないように、朝礼でどこを作業するかの確認、スプレッドシートでリアルタイムで作業場所の共有を行なっていました。
そのためMasterを直接編集するのが怖く、小さな作業も必ずブランチを切るようにしています。

上司からは、大きな変更だったらブランチ切るけど小さな変更だったら切らなくていいということ(ブランチ切る余裕があるならその時間が無駄だから早くpushしてほしいとのこと)、
またコンフリクトの解決の仕方で失敗してしまった時、Masterを直接編集すればこんなこと起きないんだからブランチ切らなくていいということを言われました。

チーム開発をする上で、Masterブランチを直接編集する場合ってどのような時なのでしょうか。
調べてもMasterは編集するものではないということが書かれている為、今関わっている現場の方針が特殊なような感じがして、ブランチは必ず切るようにするか提案しようか迷っているのですが、もしかしたらこのようなGitの使い方も知らないだけで正しいのかなと思い質問させていただきました。
そのような経験がある方、そしてそれで上手く運用できたケースなどあればよかったら教えていただきたいです。

試したこと

Gitの使い方を改めて検索した。
直接編集してうまく運用できているチームがあるかどうかを調べたが出てこなかった。

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

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

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

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

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

archiver

2019/05/17 23:39

タイトルと質問内容が噛み合っていないような。ここで聞きたいのは「ブランチを切らずに開発を進めるのはどういった時か」ですよね?言い換えれば、「ブランチはどういった時に使いますか?」になると思います。 今のタイトルだと、ただ単に「Gitって、何のために使うの?」的なニュアンスしか無いです。
yasutomi

2019/05/18 00:01

念のため確認なのですが あなたはその上司よりもGitに詳しいのでしょうか。 詳しくないのであれば何もしない方が良いです。
jelatto

2019/05/18 00:33

> archiver様 貴重なご意見ありがとうございます。仰る通りですね・・今のタイトルでは内容とあっていないと思ったので修正させていただきました。
jelatto

2019/05/18 00:39

> yasutomi様 ご意見ありがとうございます。質問内容に記載させていただいた上司の方は技術的には経験がある方ですがgitは詳しくないと仰っていました(本当かどうかはわかりませんが少なくともコマンドは知らないようです)。
guest

回答6

0

ベストアンサー

なんか解答欄が変な方向になっていますが、
疑問を持ち、疑うこと自体はエンジニアに欠かせない資質なので誇ってください。

チーム開発をする上で、Masterブランチを直接編集する場合ってどのような時なのでしょうか。

皆無です。
Gitのブランチを切る機能がなぜあるか?そりゃブランチを切る為にあるに決まっています。
GitHubのプルリクエストが何故あるか?ブランチを評価する為に決まっています。

ですのでどんなにショボい機能でもブランチを切って管理するのが通常の流れで、
御社のやり方はマイナーなやり方です。

その流れを組むコードの自動テストや、
CI、CD等ともブランチは非常に相性が良いので、
これらを駆使して開発するならば絶対にブランチを切る開発はなくしてはならないでしょう。

まぁ、黎明期の一人でシコシコ作ってるくらいのプロジェクトなら不要だと思います。
複数人でやってるなら加速度的に技術的負債が溜まって数年後には辛くなると思うので、
数年で脱出できるように、今の割と暇なうちから転職活動やTwitterなどで人脈つくりに励んでください。


Googleがブランチ運用をしないのは
強力なテスト部隊が背後に居て品質を保証し続けてくれる仕組みがあるからじゃないかと推測します。

質問者さんの会社にこれらは全部揃っていますか?

  • 自動テストコード
  • CI/CDの仕組み
  • コンテナとマイクロサービスアーキテクチャ
  • テスト部隊 <- は?こんなの用意できる会社あるん???

そうでないなら「金持ってる天才集団はセオリー無視しても許されるんだなぁ」くらいの感想で良いと思います。
私にはその感想しか思い浮かびません。

投稿2019/05/18 04:05

miyabi-sun

総合スコア21412

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

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

jelatto

2019/05/18 13:52

> miyabi-sun ご回答ありがとうございます!こんなに丁寧に教えていただけるとは・・ 私の会社には少なくとも上記に挙げていただいている仕組みがない為、Googleのような運用は難しい気がしてきました・・機会を見て改めてチームで話してみようと思います。 それでも曖昧な運用を続けるようでしたら、動向を見つつGitについてさらに知識を深めいつでも脱出できるように頑張りたいと思います。 聞きたいと思っていたこと以上のことを教えてくださり、非常に救われました。 ベストアンサーにさせていただきます。
miyabi-sun

2019/05/19 09:04 編集

最終的に技術レベルが揃っているメンバー同士で仕事をするのが正解ですから、 「マイナー」であれ別に当のメンバー達が幸せならそれで良いと思います。 自動テストがないのにプルリクの仕組みを無理に導入しても、 レビュー担当が死ぬ気で目見チェックをして結局デグレるので何やってるのかわかりません。 その自動テスト皆無なプロジェクトで頑張ってレビューしてたのが私です。 はっきり言って、私のコーディングの能力が伸びた以外は無駄でしたね、私はその職場を辞めたので無駄だけが残ったと思います。 まずは自動テストですね。 これを書かないところでブランチ運用やプルリク開発を勧めても無駄です。 自動テストについてやんわりと調査しながら、 不要だよというなら価値観が違う人間が働いている職場なので逃げたほうが良いです。 こういうスピード感の為にあらゆる事を犠牲にするプロジェクトというのは数年後にはメンバーが総入れ替えしているか、「テストなんて不要だよ!あっデグレった」みたいな重鎮が居座っているのでよく調べるべきです。
miyabi_takatsuk

2019/05/21 04:01

うちの会社のフロントチームも、バージョン管理よくわかってない人が、masterで進めちゃってますね・・・。 ブランチ切りましょうとは毎回言いますが、なかなか浸透しない・・・。
jelatto

2019/05/22 14:28

> miyabi-sun ご返信ありがとうございます。そうですね。今は現状の環境でも滞りなく開発できているようですので、他に良い方法があると知った上で現状のままが良いという方針なのであればそれに従おうと思います。 こちらのエピソードだけで自動テストの重要さについて理解が進んだ気がしました・・確かに自動テストがないということは誰かがまとめて管理しないとならず、人依存のプロジェクトが完成してしまいますね・・その人がいなくなってしまったら・・ということを考えると恐ろしいです。 仰るように、結局は開発をどう進めたいかという個人の価値観の影響がとても大きいと感じましたので、より自分が安心して開発できる環境に出会えるよう日々頑張りたいと思います。 このままの開発環境でこの先どうなるのか、良い結果になるのか悪い結果になるのかまだわかりませんが、良くも悪くも経験だと思って今はポジティブに捉え開発を続けてみます。本当にありがとうございます!
jelatto

2019/05/22 14:33

> miyabi_takatsuk そうなのですね・・浸透しないということは、私が所属しているチームのように今は大丈夫だから、ということで必要性を感じられていないのでしょうか。私は万一の場合どうなってしまうのか、ということをまだ体験したことがないこともあり、今は必要ないと言われると見守るしかありませんが・・ 次回転職する際はその辺もよく調べようと強く意識できました。ありがとうございます!
guest

0

Googleの件については、リンク先によると、GoogleはgitじゃなくPerforceを使っていると書いてあるよ。
多分、ソースコードの持ち出し対策も兼ねてるような気がする。まぁ、エンジニアが本気で持ち出そうと思ったら、どんな手段も回避されちゃうけど。

で、御社の運用だったら、gitじゃなくSubversionで良いんじゃないですかね?そういう会社は多いですよ。
私も、プロジェクトでgitを使っているというので、ブランチを切って作業をしていたら、チームリーダーの方がソースがコミットされていないというので、ブランチにありますよ?と言ったら、「ブランチって何?」って顔をしてた。

あと、質問者さんも、ソースがコンフリクトしないように朝会で確認してスプレッドシートで管理するとか、Gitの魅力半減ですよ(笑)。
コンフリクトしたら直せばいいだけですよ。(コンフリクトを解決する実力が足りない?)
コンフリクトしないようにするんだったら、クラウドのIDE使えば良いんじゃないですか?

投稿2019/05/21 03:09

TomoakiNagahara

総合スコア108

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

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

jelatto

2019/05/22 14:11

ご回答ありがとうございます!そうですね・・!初めてリンク先を読んだとき変に焦っていたのもあってかgitを使っていないだけ読んで終了してしまっていました・・ Perforce,Subversionの存在をこちらで質問させていただいてから初めて知ることができました。まだまだ勉強不足ですね。これを機に精進いたします! リーダークラスにあたる方でもGitに詳しくないという状況はあるのですね。業界的にも経験が浅い為、そのようなエピソード非常に参考になります。 確かに、朝会でも確認・スプレッドシートで管理は工数を無駄に割いていたかもしれません。 仰る通りでGitをずっと使っていたという経験者の方がおらず、コンフリクト=とても悪いこと・面倒くさいことのような意識が強かったように感じます(実際私もそのような考え方をしてしまっていたのと、現職でもコンフリクトを起こした際叱られたので一層その意識が強くなりかけていました)。きちんとGitについて理解できていたら、このようなことにはならないですね。 IDEを使うという発想はなかったです。少し調べてみたら、チームで仮想コンテナを使用している為IDEは導入できなさそうです。ただ、知識としてこちらも理解を深めたいと思います。 ご丁寧に教えていただき本当にありがとうございます!
guest

0

会社のやり方に合わせるしかないのでは。

masterへのpushで即デプロイではないから一時的に壊れても問題ないとか
masterだけ使っても問題ないほど小規模とか
会社ごとに事情は色々。

Googleは特殊なので参考にしなくていいと思うけど。

投稿2019/05/18 01:34

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jelatto

2019/05/18 02:24

ご回答ありがとうございます!会社の状況によって様々なのですね。臨機応変に対応できるよう、もっとgitについて知識を深めたいと思います。 Googleの例は調べてみたら様々な意見が寄せられていたので、それほど特殊なのですね。理解できるよう頑張りたいと思います!
guest

0

またコンフリクトの解決の仕方で失敗してしまった時、現職の上司からMasterを直接編集すればこんなこと起きないんだからブランチ切らなくていいということを言われました。

masterで作業していても、コンフリクトするときはコンフリクトします

投稿2019/05/18 00:14

maisumakun

総合スコア146581

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

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

jelatto

2019/05/18 00:47

そうですよね・・その辺りについてはどういった意図で仰っていたのか再確認してみようと思います。ご意見ありがとうございます!
guest

0

そのような経験がある方、そしてそれで上手く運用できたケースなどあればよかったら教えていただきたいです。

あなたの今の職場の方が上記を満たしていると思います。
聞いてみると良いです。

投稿2019/05/17 23:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jelatto

2019/05/18 00:45

そうですね・・以前聞いてみたら自分で調べてみてと言われたので調べてみたのですが、私の検索力と知識が乏しく解決していなかった為ご質問させていただきました。また、どんなケースがあるのか様々な意見を知りたかったのもあった為こちらに投稿いたしました。ここで知ることができた知識を踏まえて、もう一度聞いてみようと思います!ご意見ありがとうございます。
yasutomi

2019/05/18 02:03

今までの回答内容から推察すると あなたは知識不足により、上司に嫌われているため もう一度聞くのは絶対にやめたほうが良いです。 (回答を得られないばかりか、関係悪化の可能性が高いです) 「私はまだgitについても知識も乏しく」と回答されていたので まずはGitの勉強をたくさんして詳しくなるのが先です。 とりあえずGit公式サイトのReference Manualの熟読から はじめたほうが良い気がしました。 https://git-scm.com/docs
jelatto

2019/05/18 02:22

そうですね・・ご丁寧にありがとうございます。勉強になりました!
guest

0

Gitの使い方を知らないのはあなたの方です。
上司はよく理解できています。

ブランチ無し運用はGoogleが有名です。
http://2013.8-p.info/japanese/07-30-google-mainline.html

上司からは、大きな変更だったらブランチ切るけど小さな変更だったら切らなくていいということ(ブランチ切る余裕があるならその時間が無駄だから早くpushしてほしいとのこと)、

またコンフリクトの解決の仕方で失敗してしまった時、現職の上司からMasterを直接編集すればこんなこと起きないんだからブランチ切らなくていいということを言われました。

投稿2019/05/17 23:54

yasutomi

総合スコア2941

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

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

jelatto

2019/05/18 00:43

ご回答ありがとうございます。仰る通りで私はまだgitについても知識も乏しく、上司の方には失礼な質問をしてしまったかもしれません。 GoogleやFlickerなどの大企業もブランチなし運用をされているんですね!初めて知ることができました。ありがとうございます。もっと勉強いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問