私は、ソースコード管理にgitを使用する小さなチームと協力しています。最近、トピックブランチを実行して機能を追跡し、それらをローカルでマスターにマージしてから、リモートサーバー上の中央のgitリポジトリにプッシュしています。これは、マスターに変更が加えられていない場合にうまく機能します。トピックブランチを作成し、コミットし、マスターにマージしてから、プッシュします。やったー。
ただし、誰かが私より前にオリジンにプッシュした場合、私のコミットは早送りされません。したがって、マージコミットが発生します。これは、トピックブランチをローカルでマスターとマージして、現在のコードで変更が機能するようにする必要がある場合にも発生します。そのため、どこでもマージコミットが行われ、フレンドシップブレスレットに匹敵するgitログが作成されます。
したがって、リベースは当然の選択です。私がしたいのは:
- 複数のコミットを保持するトピックブランチを作成する
- マスターとプルをチェックアウトします(マスターにコミットしていないため、早送りします)
- トピックブランチをマスターの新しいヘッドにリベースします
- マスターに対してトピックをリベースし(トピックはマスターヘッドから開始します)、マスターをトピックヘッドに移動します
現在これを行う私の方法は以下のとおりです。
git checkout master
git rebase master topic_1
git rebase topic_1 topic_2
git checkout master
git rebase topic_2
git branch -d topic_1 topic_2
これを行うためのより速い方法はありますか?