V4.15.0
ブランチブランチで働いていましたが、master
ブランチに行っていたはずのマイナーチェンジを行った後、コミットしてプッシュしました。gitがコミットして間違ったブランチにプッシュ
このエラーを元に戻すにはどうすればよいでしょうか?コミットを削除することなく、V4.15.0
からmaster
にコミットを移動する方法はありますか?
V4.15.0
ブランチブランチで働いていましたが、master
ブランチに行っていたはずのマイナーチェンジを行った後、コミットしてプッシュしました。gitがコミットして間違ったブランチにプッシュ
このエラーを元に戻すにはどうすればよいでしょうか?コミットを削除することなく、V4.15.0
からmaster
にコミットを移動する方法はありますか?
まず、V4.15.0ブランチを修正する必要があります。可能な方法は2つあります。
git revert
が最も簡単です。単一のコミットIDが与えられると、revert
はその履歴を新しいコミットとしてその逆を作成します。
git checkout V4.15.0
git revert HEAD
あなたは歴史があなたの間違いを表示したくない場合は、歴史をリセットするためにpush --force
を使用する必要があります。非ユーザブランチの履歴を書き換えるにはit is usually a bad practiceに注意してください。そのため、一部のリポジトリマネージャは--force
を許可しません。ただし、お客様のワークフローポリシーで確認することは可能かもしれません。
# checkout the original V4.15.0 branch
git checkout commit_before_mistake_V4.15.0
# we are now detached from HEAD, so checkout a new branch
git checkout -b fixed_branch
# force push, this rewrites history
git push fixed_branch:V4.15.0 --force
ここで、コミットをマスターブランチに移動する必要があります。
上記の2つの方法のいずれかを使用しても、誤ったコミットは削除されません。そのIDを覚えておいて、git cherry-pick id
を使用して、そのコミットを他のブランチに追加することができます。
git checkout master
git cherry-pick id
あなたは2つのことをする必要があります。まず、コミットしたくないブランチのコミットを元に戻します。次に、正しいブランチにしたいコミットをチェリーピックします。
ハッピーチェリーピッキング!
歴史の書き換えは危険であり、お勧めできません。 [このSOの投稿を参照](http://stackoverflow.com/a/1491022/4494577) – jannis
はい、私はこれに関する通知を追加しました。ありがとう。 – Martin