私たちのgit開発のワークフローでは、トピックブランチはマージされるまで最新のマスターで継続的にリベースされます。リベースを使用するためにマージを使用したgitトピックブランチの履歴を変更しました
しかし、新しい開発者がトピックブランチを作成し、トピックブランチにマスターをいくつかマージして最新の状態に保ちます。
A---B---C---D---E topic
/ //
F---G---H---I master
このトピックブランチをマスターにマージすると、完全に正確になりますが、非常に面倒な履歴になります。私は、単一のコミット--no-ff
マージしてマスターにきれいにマージすることができるきれいな線形リベース歴史の中にこれらのトピックブランチを変換するすなわち:
A'---B'---E' topic
/
F---G---H---I master
理想的には、私が行うことができますいくつかのgit-FUが存在することになりますこのリベースは、トピックブランチをコミットしたままで、CやDなどのトピックマージコミットですでに利用可能なマージ競合解消情報を自動的に適用します。
私は単純に "git diff master..topic "を使用して、リベースを使用して後方に作業し、手動で単一のパッチを個々のコミットに分割しますが、よりシンプルで洗練されたアプローチがありますか?
私はまっすぐにgit rebase
とgit rebase -p
コマンドを使ってみました。
ええと、本当にあなたが望んでいたものですか?グラフのS、V、およびXは、マージコミットと見なされるので、希望の状態でS '、V'、およびX 'として存在してはいけません。彼らが手作業による紛争解決の束を含んでいない限り、私はそう思っています。 – Raman