私はマスターの2つのブランチを持っていますが、それぞれ異なるフィーチャーがあります。そして、2つを組み合わせた合成ブランチを持っています。私は合成ブランチに何かをコミットしましたが、今では、その機能に特有のブランチの1つにその変更を適用したと思います。これを行う方法はありますか?gitを使って別の場所に適用するか適用しますか?gitでは、あるブランチからコミットを削除し、それを別のブランチに適用するにはどうすればよいですか?
21
A
答えて
27
チェリーピックはターゲットブランチにコミットし、ソースブランチをリセットします。仮定すると、あなたは、最新のは、target
にsource
ブランチからコミットを行う移動する:
git checkout target
git cherry-pick source
git checkout source
git reset --hard source^
コミットが最後ではなかった場合は、最後のコマンドの代わりにgit rebase -i
を使用する必要がありますとのために、特定のコミットの名前を選択しますあなたのcherry-pick
私はこのような何かをするとき
2
一般的に、私は以下となります。
- は私が変更を削除したいの枝には、この逆のパッチを適用しますgitのdiffを(例えば
git diff HEAD^ HEAD
) - を用いて逆パッチファイルを作成します。から。
- 差分を、私は
- 利用
git cherry-pick
上の変更が適用さは、私はもっと簡単な方法があると信じているが、私は使用して(と覚えている)ので、私はこれを好む
をコミット適用したいですかブランチをチェックアウト/ cherry-pickコマンドの方が良い
+3
手順1 + 2 ==元に戻す – Dustin
関連する問題
- 1. すでにコミットされているgitブランチを削除する
- 2. 古いコミットから新しいGitブランチを作成するにはどうすればよいですか?
- 3. git pushクロスブランチ、あるブランチから別のブランチへコミットをフェッチ
- 4. 、gitブランチが追跡しているsvnブランチを変更するにはどうすればよいですか?
- 5. git-svn:あるSVNブランチから別のSVNブランチにgitコミットをコピーするには?
- 6. Git:コミットの一部を別のブランチに適用する
- 7. git 1つのコミットから別のブランチに変更を適用する
- 8. gitの既にプッシュされているブランチからすべてのコミットを削除するには?
- 9. Git/SourceTree:ブランチを削除するには?
- 10. Gitの名前のないブランチにコミットを回復させるにはどうすればいいですか?
- 11. Gitブランチを削除する
- 12. Visual Studioで別のブランチから別のブランチに差分を適用するTFS
- 13. Gitブランチを新しいコミットにする
- 14. git svnマスターにブランチするにはまだブランチにコミットしよう
- 15. Git:マスターから別のブランチにコミットする
- 16. リモートのgitブランチを安全に削除するにはどうしたらいいですか?
- 17. gitでブランチを別のブランチにリセットするには?
- 18. コミットを削除せずにgitを削除ブランチ
- 19. すべてのコミットをブランチから別のブランチに移動する方法は?
- 20. あるブランチから別のブランチへのコミットを含まずにGitをマージする
- 21. Git masterブランチから別のブランチにフォルダをコピーします
- 22. Git - ブランチが別のブランチにマージされたかどうかを確認するには?
- 23. ブランチ内で唯一のコミットの場合、最初のコミットのみを削除するにはどうすればよいですか?
- 24. Mercurialでは、1つのファイルの変更をチェンジセットから抽出して別のブランチに適用するにはどうすればよいですか?
- 25. 私が作成したブランチを削除し、すべてを元のブランチの最後のコミットに戻すにはどうしたらいいですか?
- 26. 後でコミットしたままで、悪いコミットを削除するにはどうすればよいですか?
- 27. ローカルでコミットされたブランチをgitでリカバリする方法は?
- 28. gitのMERGE_MSGを削除するにはどうすればよいですか?
- 29. ブランチを運用サーバーに展開しないようにするにはどうすればよいですか?
- 30. git:現在のブランチで現在コミットされていない作業を新しいブランチにコミットします
ありがとう!よく働く。 – prismofeverything
reset/rebaseは** history rewriting **を行っているので、履歴が公開されていれば使用しないでください。代わりにgit-revertを使う必要があります。 –