おもちゃのプロジェクトがあるローカルリポジトリがあり、思っていたよりも深刻であることが判明しました。そのため、不注意にコミットした単一の開発ブランチから、有名なブランチのようなものを使い始めました http://nvie.com/posts/a-successful-git-branching-model/ ==
開発ツリーとマスターツリーをプッシュできる「中央」リモートリポジトリが必要です。
最初の問題は、これをどのように行うかです。サーバー上の空のリポジトリを初期化し、このリポジトリをローカルリポジトリのリモートオリジンとして参照しますか?
事前にリモートリポジトリにブランチを作成する必要がありますか、それともプッシュするだけで十分ですか?
第二に、私のローカルリポジトリの最初のコミットは本当に厄介なので、-no-ffの方法で、または私が理解しているように、それらの初期のコミットの多くを1つにまとめたいと思います。
私が理解しているように、これは中間ブランチでのみ機能します。つまり、現在、ローカルリポジトリに2つのブランチ "develop"と "master"があります。 「歴史を変える」方法を2つ思いついた
2つのブランチを作成しますdevelop-squashedとmaster-squashed。失いたいコミットを押しつぶしながら、元のブランチをそれらにリベースします。 -squashedブランチが元のマスターと同等であり、ブランチを開発したら、元のブランチを削除して、* -squashedブランチをmasterに名前変更」できます。および開発。
最後に、masterおよびdevelopmentにプッシュできますremoteリポジトリ。
それは行く方法ですか?
リベースすることで、両方のブランチmasterとdevelopの両方が、「成功したgitブランチモデル」に従い始めた時点まで同じ履歴を持っていることを確認するにはどうすればよいですか? (彼らは現時点でその時点まで同じ歴史を持っています)。
develop
を持つことは、実際にはmaster
とは異なる点からのみ意味があります。git filter-branch
コマンドをご覧ください。すべてのリベースを簡単に実行できるはずです(フィルターブランチに関連するものはすべて簡単と呼ぶことができますが、いずれの場合でも多くの作業を節約できます)。あなたがしたい操作は基本的に簡単です。最初のコミットのためだけに、親をクリーンアップされたものに置き換えます。