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

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

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

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

Q&A

解決済

3回答

2575閲覧

gitでローカルのブランチをローカルのマスターにマージするのはNGですよね?

murabito

総合スコア108

Git

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

GitLab

GitLabは Gitoliteをブラウザから管理できるようにする Rubyアプリケーションで、 GitHubのようなサービスをクローズドな環境に独自で構築できるように 公開されたものです。

0グッド

0クリップ

投稿2018/07/08 03:28

チーム開発においてのgitの使い方を勉強しているのですが、git flowみたいなやり方をベースにしている場合、ローカルのmasterをローカルのブランチにマージすることはあっても、ローカルのブランチをローカルのmasterにマージするっていうことは基本的にはないのですよね?(非推薦?)

リモートリポジトリの管理者みたいな人が、チームメンバーからプルリクエストされたブランチをリモートのマスターにマージすることになると思うので、チームの一人が勝手にローカルでブランチをマスターにマージしてたら、何かコンフリクトとか履歴がおかしくなったりとか、してしまいますよね?

「ローカルのmasterをローカルのブランチにマージすることはあっても、ローカルのブランチをローカルのmasterにマージするっていうことは基本的にはない」という認識であっているかどうかを確認したいです!

よろしくお願いいたします!

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

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

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

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

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

guest

回答3

0

ベストアンサー

・プルリクエストの承認者と、承認者以外の人が分かれている
・マスターブランチへのマージは、プルリクエストの承認者しか行わない
という前提であれば、承認者以外の人がマスターブランチにマージすることは基本的にありません。

チームの一人が勝手にローカルでブランチをマスターにマージしてたら、何かコンフリクトとか履歴がおかしくなったりとか、してしまいますよね?

勝手にマスターにマージさせるからといって、コンフリクトや履歴がおかしくなるのではないです。
コンフリクトは、修正した場所が被っていたら起こりますし、履歴はコミットが時系列に並ぶだけです。
ただし勝手にやることで、もしマスターブランチが本番用のブランチであれば、勝手にマージさせたことにより障害があった場合に責任が取れますか?ということです。

なお、この前提は、チームによって異なります。

私が業務上経験したことのあるチームでは、下記のようなケースがありました。
・完全にプルリクエストの承認者と、承認者以外の人が分かれているケース
・プルリクエストの承認者と、承認者以外の人は分かれているが、たまに承認者から承認者以外の人に「マージしておいて」と頼まれるケース
・誰もがプルリクエストの承認者になりうるため、プルリク承認の依頼がきたらコードレビューしてマスターにマージするケース

何が言いたいかというと、チーム開発は、会社の風土やチームの方針によってルールが変わるため、「ローカルのmasterをローカルのブランチにマージすることはあっても、ローカルのブランチをローカルのmasterにマージするっていうことは基本的にはない」と思い込むことは危険です。

投稿2018/07/08 03:46

yukapome789

総合スコア361

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

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

murabito

2018/07/08 05:53

ありがとうございます。大変参考になりました。
guest

0

ローカルのブランチをローカルのmasterにマージするっていうことは基本的にはないのですよね?(非推薦?)

githubを使って開発をしている時、普通はPRを出してgithub上でマージしてます。

チームの一人が勝手にローカルでブランチをマスターにマージしてたら、何かコンフリクトとか履歴がおかしくなったりとか、してしまいますよね?

誰かのローカルにあるmasterブランチに何かをマージして、pushせずに放置していて、別の誰かが同じファイルを更新してgithub上でmasterを更新したら、コンフリクトしますね。

「ローカルのmasterをローカルのブランチにマージすることはあっても、ローカルのブランチをローカルのmasterにマージするっていうことは基本的にはない」という認識であっているかどうかを確認したいです!

あってると思います。

チームによっては、PRを使って他の人にレビューしてもらう必要がなさそうな修正は、直接masterを更新してるかもしれませんけどね。(例えば、コメントがタイポしてるとか)

とはいえ、PR出してレビューをしながら進める方がチームメンバーの納得感がありますし、基本的にPRを作って進めるというふうに考えておいて良いような気がします。

投稿2018/07/08 03:50

mtb_beta

総合スコア181

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

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

murabito

2018/07/08 05:54

ありがとうございます。認識に間違いがさほどないようで安心しました。
guest

0

localかremoteか、というのは意味のない議論で、大切なのはbranchをmergeするに足る要件を満たしたか、merge権限を持っているか(開発メンバー内でのコンセンサス)です。

git-flowではdevelop branchからrelease branchを作ってこれをdevelopとmasterの両方にマージすることになると思います。

もう一度いいますが、localかremoteか、というのは意味のない議論です。git-flowにGithubのPull Requestは必須ではありません。

投稿2018/07/08 03:47

yumetodo

総合スコア5850

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

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

murabito

2018/07/08 05:54

ありがとうございます。チームごとにまた違ってくるのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問