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

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

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

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

Q&A

解決済

3回答

2234閲覧

git rebaseについて

imamoto_browser

総合スコア1161

Git

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

1グッド

0クリップ

投稿2016/09/11 15:27

qiitaのgit rebase記事をよんでいて、

PullRequestを送りました報告をしたら

このままmergeできないので、rebaseしてもういっかいPUSHしてくださいと言われました。

とあるのですが、これってどんな場合でしょうか。

mergeできない理由がconflict以外にあると思うのですが、developブランチにmasterブランチをrebaseした場合のcommit Eと、mergeしたときのcommit Eのファイル内容は異なるということでしょうか。

thinca👍を押しています

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

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

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

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

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

guest

回答3

0

このままmergeできないので、rebaseしてもういっかいPUSHしてくださいと言われました。

「このままmergeしたくないので」という意味かもしれないですね。
1ヶ月前のコミットから派生させたブランチのPR送られると「おいおいマジかよコミットグラフがびよーんと伸びるからやめてくれよ」と思う人は多そうですよね。Gitにはコミット履歴直線の宗派の人達もいるみたいですし。

投稿2016/09/12 01:17

kodai

総合スコア759

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

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

imamoto_browser

2016/09/12 11:15

回答ありがとうございます。なるほど、これも好みの問題がだいぶあるんですね。たしかにすっきりした履歴の方が気持ちいいし、バグフィックスによる混乱はなくてよさげですね。
guest

0

ベストアンサー

OSSの場合、それが作者に対する礼儀です。

せっかくの提案なのですから、原作者に余計な手間をかけさせないように、コードの整理、そのままマージできるようにする準備などは一通り済ませておきましょう(状況によっては、先に入ったコミットとの関係上、自分の側でコード修正が必要になることもありえます)。

投稿2016/09/12 00:37

maisumakun

総合スコア145184

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

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

imamoto_browser

2016/09/12 00:46

回答ありがとうございます。 もちろんこの場合、プルリクした側が直すのは当たり前だと思うのですが、なぜ「このままではmergeできないので、conflictを修正して、もう一回PUSHしてください」ではなく、「このままmergeできないので、rebaseしてもういっかいPUSHしてください」なのかが知りたいです。
maisumakun

2016/09/12 01:13

プルリクを作った時点でのmasterから、オリジナルのmasterが進んでいた場合、そのままmergeしてしまうと、コミットの流れが複雑になってしまいます。そういうことで、masterをオリジナルに合わせるのも、依存関係などをはっきりさせるために推奨されます。 http://qiita.com/ganezasan/items/f7ca66f47bc8067988cf
thinca

2016/09/12 01:57

rebase と merge どちらが良いかは人によって好みがあるので、相手に合わせるのが良いかと思います。 topic ブランチに master を merge した場合はマージコミットのみレビューすればよいですが、rebase してしまうと新しい変更が入り込む余地ができてしまうため、PR 全体をレビューし直すことになります。そのため好まない人もいます。
imamoto_browser

2016/09/12 11:11

>maisumakunさん 有用なURLを貼っていただき、ありがとうございました。rebaseすることで、featureブランチが常に最新のコミットとなって履歴がすっきりして、merge担当者は混乱することなく、hotfixできるということですね。
imamoto_browser

2016/09/12 11:13

>thincaさん 回答ありがとうございます。私も、mergeで十分じゃないか?とずっと思っていたので、「バグが見つかりました。修正版をマージしてください」の方が直感的で好きですね。ただ、rebaseのメリットもわかったので、よかったと思っています。
guest

0

これってどんな場合でしょうか。

conflict している場合です。

mergeできない理由がconflict以外にあると思うのですが

なぜこのように思ったかわかりませんが、このまま merge できない場合と言うのは conflict している場合になります。

投稿2016/09/11 15:44

thinca

総合スコア1864

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

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

imamoto_browser

2016/09/11 15:48

回答ありがとうございます。それだと、conflictを解消してmergeすれば済むだけな気がするのですが。
thinca

2016/09/12 01:52

それでも問題ありません。必ず rebase する必要はなく、どちらでも大丈夫です。 ただしプロジェクトによっては方針がある場合があるので、もしある場合は従うのが良いと思います。参照された例では、リポジトリオーナーに rebase してくれと言われたので rebase したのだと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問