問題が発生しました。私はマスターについていくつかのコミットをしました。しかし、私は間違いを犯しました。私はbranch_aでこれらのコミットをする必要があります。 master上のコミットをキャンセルしてbranch_aに移動するにはどうすればよいですか。他の誰を想定していないマスターでコミットをキャンセルしてブランチに移動する方法
2
A
答えて
2
はすでに習得する変更内容を見て、それらの上に何かを構築しています:
git checkout branch_a
git cherry-pick <commit sha> # for each commit you want on branch a
git checkout master
git reset <commit sha you want to move master back to>
誰かがあなたの偶然のマスターがコミットの上に、既に構築されたものを持っている場合は、その後'LL reset
の代わりにgit revert
にしてください。
2
あなたがカップルをコミットしているだけなら、チェリーを選ぶのが最も簡単なオプションかもしれません。コミットのハッシュはgit log master
で見つけることができます。次に、以下を実行します。すべてCOMMIT_HASH_#
あなたがbranch_a
に移動したいとCOMMIT_HASH_BEFORE
があなたの間違ったコミット前からコミットハッシュでコミットしている
git checkout branch_a
git cherry-pick COMMIT_HASH_1
git cherry-pick COMMIT_HASH_2
...
git checkout master
git reset --hard COMMIT_HASH_BEFORE
。
すでに変更をmaster
にプッシュしていて、他の人がブランチで作業している可能性がある場合は、git revert
としたいことに注意してください。あなたがチェリーを選んだのと同じコミット。そうしないと、ブランチで働いている他の人に問題が発生します。 (元に戻すだけで、以前のコミットを元に戻す新しいコミットが作成されます)。
1
マスターブランチをリセットして変更を保存することをお勧めします。チェリーピックを使用すると、新しいコミットでレポが汚くなります。あなたは2つのコミット行ったと仮定:--softでリセット
git checkout master
git reset --soft HEAD~2
git checkout branch_a
git commit -m "foo"
すると、あなたの変更が上演保持されますと、あなたがコミットを作っ前にそれが見えたとして、それが状態でのgitを置くことを意味しますので、あなただけのブランチを切り替える必要があります変更を再コミットします。
関連する問題
- 1. すべてのコミットをブランチから別のブランチに移動する方法は?
- 2. マスターから別のブランチにコミットを除外する方法
- 3. ブランチ間でコミットを移動する方法は?
- 4. コミットを別のブランチに移動する
- 5. すべてのコミットを特定のコミットから新しいブランチに移動する方法
- 6. マスターとブランチ間のGit移動コード
- 7. Git:ブランチからマスターへのリベースとスカッシュのコミット方法は?
- 8. コミットをマスタから独立したブランチに移動する
- 9. git svnマスターにブランチするにはまだブランチにコミットしよう
- 10. gitコミットをmasterから別の既存のブランチに移動する方法
- 11. Git/sourceツリーの移動は、ブランチBでブランチAにコミットします
- 12. git - ブランチ "タグ"を他のコミットに移動しますか?
- 13. 古いコミットをgitの別のブランチに移動するには?
- 14. Gitの - 新しいブランチにマスターでコミット変化
- 15. マスターとマージされたブランチでGitスカッシュがコミットします
- 16. 複数の非連続コミットを別のブランチに移動する
- 17. Git:特定のコミットを別のブランチに移動する。
- 18. Git:マスターを新しいブランチにマージしてマスターをクリアする
- 19. gitのmasterブランチで最初にコミットする前に、後で作成したブランチを移動するには?
- 20. 作業を別のブランチに移して後でマスターに追加する
- 21. Git:マスターから別のブランチにコミットする
- 22. チェリーをマスターからブランチにしてからブランチからマスターにマージするときに繰り返しコミットすることを避ける
- 23. gitブランチを新しいマスターにする方法は?
- 24. ブランチのコミットをチェックアウトする方法
- 25. GITブランチが先行しているか、コミットすることのないオリジン/マスター
- 26. あるブランチから別のブランチにコミットする方法(
- 27. コミットされていない変更を別のブランチに移動する方法は?
- 28. マスターにマージする前にコミットをスクラッシュする方法は?
- 29. 自動的にコミットを削除する方法Gitで自分自身をキャンセルするコミット
- 30. 1つのブランチからすべてのコミットを1つのコミットとして簡単に別のブランチに移動できますか?
branch_aはすでに存在しますか? masterにはbranch_aにないコミットがありますか?branch_aに移動したくないのですか? branch_aにmasterにはないコミットがありますか? –
ああ、撃たれた。これは、私があなたになるならば、私はそれらの変更を元に戻して、私の機能ブランチ(あなたの場合はおそらくbranch_a)でそれをやり直してコミットすることを助けるかもしれないhttp://stackoverflow.com/questions/927358/git-undo-last-commit変更は、これが役立つことを願って、歓声 –
Tats_innitはそれの権利を持っているようだ。あなたは 'git revert'と' git cherry-pick'の組み合わせをしたいと思っています。 – Borealid