2016-04-11 18 views
0

V4.15.0ブランチブランチで働いていましたが、masterブランチに行っていたはずのマイナーチェンジを行った後、コミットしてプッシュしました。gitがコミットして間違ったブランチにプッシュ

このエラーを元に戻すにはどうすればよいでしょうか?コミットを削除することなく、V4.15.0からmasterにコミットを移動する方法はありますか?

答えて

2

まず、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 
+1

歴史の書き換えは危険であり、お勧めできません。 [このSOの投稿を参照](http://stackoverflow.com/a/1491022/4494577) – jannis

+1

はい、私はこれに関する通知を追加しました。ありがとう。 – Martin

2

あなたは2つのことをする必要があります。まず、コミットしたくないブランチのコミットを元に戻します。次に、正しいブランチにしたいコミットをチェリーピックします。

ハッピーチェリーピッキング!

関連する問題