現在、私は2つのブランチを持っています。先週、私はブランチマスター(ブランチ間違った)で私の仕事をコミットし、今私はこれらのコミットをDEVブランチ(右ブランチ)に変更する必要があります、これを行うには良い方法は何ですか?コミットを別のブランチに変更する
はMAC
乾杯にgithubのデスクトップを使用してイム、 ラファエル
現在、私は2つのブランチを持っています。先週、私はブランチマスター(ブランチ間違った)で私の仕事をコミットし、今私はこれらのコミットをDEVブランチ(右ブランチ)に変更する必要があります、これを行うには良い方法は何ですか?コミットを別のブランチに変更する
はMAC
乾杯にgithubのデスクトップを使用してイム、 ラファエル
あなたの質問は不明です。だから私はあなたの古いバージョンのマスターが必要であると仮定しています。あなたはDevの新しいバージョンが必要です。つまり、gitの履歴を変更する必要があります。これらのコミットをリモートにプッシュした場合、これはgitの履歴を乱したくないので、実行してはいけないことです。
あなたがするのはcherry-pick
です。マスターからコミットしてから、コミット前にマスターをリセットしてください。
あなたがそれを行う前に、すべきでバックアップしたデータ: How to cherry-pick multiple commits
私の考えは、おそらく競合を避けるために、パッチ適用使用することでした:どのように桜のピックに
git checkout master
git checkout -b backup_master
git checkout DEV
git checkout -b backup_DEV
。
git checkout master
git format-patch -1 HEAD (if thats all you want)
git checkout dev
git apply —check file.patch (check it first)
git am < file.patch
最古のためのSHAハッシュとHEADを交換したいでしょうし、それが現在にコミットごとに、*の.patchファイルを作成しますコミット。その後、適切な順序でdevにそれらを単独で適用します。
その後、マスターをもう一度チェックして、そのSHAハッシュをチェックアウトすることで、マスタで不要にする前にコミットに変更することができます。その後、良いメッセージでそれを再コミットします。私はそうするかもしれないと思う。私が誤解した場合、または私がまともで間違っている場合は、私を修正してください。
これらのコミットをリモートにプッシュした場合、MASTERブランチからコミットを削除することはできません。
最新のMASTERブランチコードをDEVブランチにフェッチできます。
そのため: バックアップしDEVブランチgit checkout -b backup_DEV
その後:
git checkout DEV
git stash
git rebase MASTER
git push DEV
git stash pop
今、あなたはそれがDEVにコミット見ることができます。
'Dev'と' Master'ブランチの関係はどうですか? –