0

私は自分の別のフォーク(別のブランチ)でプロジェクトに取り組んでいます。時間が経つにつれて、私はかなりの量のコミットを積み上げてきました。変更を上流にプッシュしたい (プル リクエスト) が、開発中に無関係になった多くのコミットがあります。だから私はのような歴史を持っているとしましょう

A - B (upstream/master)
     \ 
      C - D - E - E1
               \
                1 - 2 -- 3 - 4 (local)
                     \  /
                       Z

4からにプルリクエストを送信したいと思いBます。Dファイルに存在しなくなり、アップストリームが知る必要のないコミットなど、多くのコミットがあります。A - B - Cのファイル コンテンツAが と同一である場所を検討してくださいC。からプル リクエストを送信するときは、まずブランチをクリーンアップして、何も起こらなかったCように見せたいと思います。B

これどうやってするの?

「履歴全体を保存する必要があります。それはあなたの考えを示しています &c」とコメントしないでください。主に興味本位で質問しています。

4

1 に答える 1

2

git rebase -i origin/master現在のブランチ履歴を再生し、/コミットするか、それらを完全に削除できますorigin/master(エディターがポップアウトしたときにコミット行を削除するだけです)。リベース中の指示を参照してください。fixupsquash

または、reset --hard origin/masterブランチを同じ状態にしてorigin/masterからcherry-pick、必要なコミットを行うこともできます。

ちなみに、フォークに取り組んでいるときは、通常、公式リポジトリを追加し$ git add remote official https://github.com/rails/rails.gitます。プルリクエストを送信したいときは、それにリベースを行い$ git fetch officialます$ git rebase official/master

于 2013-07-07T22:51:09.090 に答える