私は通常、開発から新しいブランチを作成します
git checkout -b new-feature develop
最後のコミットの後、私はマージして開発します
git checkout develop
git merge new-feature
しかし、今回はnew-feature2
からnew-feature
ブランチを作成したため、develop
にマージできません。
new-feature2
の親をdevelop
に切り替える方法はありますか?
(私が作業したファイルはdevelop
と同じバージョンだったので、これをマージする必要はありません。)
機能をメインベースにリベースできます。
git checkout new-feature2
git rebase --onto develop new-feature new-feature2
# rebase the stuff from new-feature to new-feature2 onto develop branch
またはチェリーピックを使用して「手動で」実行します
git checkout develop
git log --oneline new-feature..new-feature2
# for every commit call:
git cherry-pick <commit-id> # note, newer versions of cherry-pick allow multiple commits at once
インタラクティブなリベースを見たことがありますか?
git rebase -i develop
これは非常に単純なソリューションです。そのブランチからのすべてのコミットが表示されます。不要なブランチから「ピック」行を削除するだけです。
パッチを作成し、develop
ブランチにチェックアウトして、パッチを適用するのはどうですか?
git checkout new-feature2
git format-patch new-feature
git checkout develop
git am name-of-the-patch.patch
git diff
およびgit apply
を使用することもできます。
git diff new-feature..new-feature2 | git apply -