git push の取り消し

よく、git reset が紹介されてるがきちんと管理されてるリポジトリだとnonFastFowardでpushできなかったりする

 

そもそも作法にのっとると、以下のような操作になるから基本的にresetは必要無いし、しないべきである。logが汚れるけど恥を晒してrevertする方がマシ

 

1. おもむろにforkする

2. 自分のリポジトリ上で開発用にbranchを切る

3. エディットする

4. commit前に他の更新をマージ

  4-1. fork元から自分のリポジトリmasterへfetch&merge

  4-2. 自分のリポジトリmasterから開発用branchへfetch&merge

  4-3. コンフリクトを解消する修正

  4-4. コンフリクト無くなるまで繰り返す

5. 開発用branchへcommit&push

6. 開発用branchからfork元のmasterへプルリク

 

 

こうすることで複数の目的で同時並行に開発しつつ、他の人の差分を適宜とりこみつつ、プルリクが送れる

 

revertするのはmergeを間違えた時だけで、開発用のbranchへ間違ってpushしたらbranch消してやり直せばいいだけ