2013-08-19 17 views
11

私はチームと一緒に作業しており、機能ブランチとプルリクエストを行っています。githubのプルリクエスト - マスターからリベースされたコミットの表示

私はブランチを作成しましたが、少し作業しましたが、マスターでもほとんど作業しませんでした。

次に、masterに対してブランチをリベースしました。今私はプルの要求をしたい。

しかし、GitHubでは、最初にブランチを作成したときから今度はこの機能ブランチで行ったコミットとその間に起こったマスター上のコミットがすべてプルリクエストによって表示されます。

これは騒々しい乱雑です - 何か間違っていますか?他のコミットがすでにマスタとブランチの両方にあるので、違いはありません。

私が知る唯一の提案は、最新の上流のマスターとチェリーピッキングをベースにしたブランチをブランチから作成することです。

答えて

3

何か間違っている必要があります。リベースの結果として、マスタの最後のコミットの後にユニークなリビジョンしか持たず、ブランチは早送りの準備ができているはずです。

私は今すぐクイックテストを行いました。もちろん、プルリクエストはユニークなリビジョンだけを期待通りに表示します。騒々しい混乱がなく、チェリーを選ぶ必要はありません。あなたの支店に何か問題があるようです。

もう一度リベースしてみてください。以前に正しくリベースした場合、これは今やノーオペレーションでなければなりません。あなたのブランチをチェックアウトし、このように、マスターの上に再びリベースしよう:

git checkout yourbranch 
git rebase master 

これはCurrent branch will-have-rebased is up to date.を印刷しなければならない、とあなたはGitHubのにブランチをプッシュした後、あなただけのプルリクエストを作成することができるはずですユニークなコミットが表示されます。私はなぜそうは思わない。

重要:リベースする前に、あなたのブランチをプッシュしていた場合ことを覚えておいて、その後、Gitは再び後のリベースをプッシュすることを拒否します。これは一般に、公共支店の歴史を書き直すべきではなく、この点についてはリベースに関するすべてのガイドが説明するべきであるからです。とにかくブランチをプッシュしたい場合は、履歴をgithubに書き直して、--forceフラグを追加してください。

+1

これは指定どおりに動作しますが、ブランチをプッシュできません。答えは私が以前に一度プッシュしたからです。 –

+0

@HsiuDai押す必要がないため、またはGitがブランチの履歴の書き換えを拒否したため、再度押すことはできません。レポのURLとブランチの名前を投稿できますか? – janos

+0

プライベートレポ私は恐れている、それを与えることはできません。しかし、これはgitが歴史を書き換えるのを拒否したからです。 –

8

私は同じ問題が持っていた:、私たちはfoo支店を持っている場合は

masterから分岐し、すでにoriginに押し込まれ、そして両方の枝に変更が行われた後、マージ/リベースした後、私は変化を得ていましたプルリクエストの差分のmasterから

私は、最初のgit fetchを実行し、私の地元のmasterブランチを更新し、fooにローカルブランチを変更してからコマンドを実行することによってそれを解決:

git rebase master

git push -f origin foo:foo

を。これは、リモートブランチを強制し、PRのさdiffには、最近のmasterに基づいてブランチが作成されるように、適切な変更のみが含まれます。

+0

「最新のものをすべて入手しました」何も変わりません – feresr

+0

「origin/master」から先に引っ張りましたか? 'foo'をリモートに押しても力を使いましたか? –

+0

プッシュを強制するのを忘れてしまったと思います.PR上の「ベース」ブランチをマスター以外のブランチに変更し、それを元に戻して解決しました – feresr

関連する問題