0

深刻なバグ修正が必要なプロジェクトがありますが、いくつかの新機能も開発しています。次のリリースは、テストされていない機能ではなく、主にバグ修正である必要があるため、最近の機能のコミットをすべて別のブランチに移動したいと考えています。「git branch branchname (sha1-of-commit)」を使用してブランチを作成できるという別のスレッドを見たことがあります。私の質問は: このブランチを作成したら、最近のコミットを master から新しいブランチに移動することは可能ですか? (移動されたコミットは master ブランチに表示されなくなります)。

4

1 に答える 1

2

git cherry-pick新しいブランチにコミットできます。それぞれcherry-pickが特定のコミットの変更を適用し、それらを効果的にコピーします。

git checkout branchname
git cherry-pick <sha-of-interesting-commit>

マスター ブランチからコミットを削除するのは、よりトリッキーです。これらのコミットをプッシュしていない場合はrebase、 master のインタラクティブをそれ自体に実行してから、提示されたコミットのリストからそれらを削除してコミットを削除できます。

例: これは、現在のブランチの最後の 5 つのコミットをリベースします

git rebase --interactive HEAD~5

コミットのリストが表示され、不要なものを削除できます

pick 1fc6c95 Patch A
pick 6b2481b Patch B
pick dd1475d something I want to split
pick c619268 A fix for Patch B
pick fa39187 something to add to patch A

詳細については、 https://help.github.com/articles/interactive-rebaseを参照してください。

cherry-pickコミットの新しいチェーンを作成することにより、移動ではなくコピーし、rebase --interactive実際に履歴を書き換えることに注意してください。

于 2013-06-25T21:54:46.140 に答える