🔧
masterブランチを汚してしまった時の対処法
自分のローカル環境で開発していていissueの切り替えを間違えたり、masterから差分をpullした際に自分の差分とごっちゃになったりで、間違えてコミットしちゃってmasterブランチが汚れたときの備忘録です。
vscode基準で考えています。
イメージはこんな感じ。
現状の整理
前提としてチーム開発をしていて、masterへの直pushは出来ないようにブロックされている。
正しいmasterを変更する手順は
- 「ブランチを切る」
- 「ブランチ内で変更をコミットしリモート環境にプッシュする」
- 「作ったブランチからmasterブランチにPR(MR)を出す」
- 「マージされる」
である。
masterをキレイにする手順
が、現状は1のブランチを切るの所でコケてしまい、masterブランチに個人のコミットをしてしまった状態。
なので、1の手順に入る前にmasterをキレイにする必要がある。
直前のコミットの場合
masterにある邪魔なコミットが直前の物である場合は下記のコマンドで手軽に消せる。
git reset HEAD~ —soft
いくつか前のコミットの場合
まずは下記コマンドでログの確認
git log
で戻したいコミットのハッシュ値をコピー。
次にハッシュ値のコミットまでリセット。
ここでは指定したコミット済の所までリセットされる。
git reset --hard ハッシュ値
これでmasterブランチがきれいになる
Discussion