git reset --hard で履歴を削除2017年06月08日 13時21分25秒

git で複数のレポジトリと同期を取りながら作業をしていると、不整合にぶちあたることがある。経験則だと、git commit --amend をして、既にコミットしてある物に上書きした後に多いようだ。

さて、まずは、どのレポジトリを本命として残すかを決める。そうしたら、git log で一番最初の履歴を探し、全てを消し去れば get pull でまたやり直せる。

% git log
% git reset --hard 
% git pull 
git reset は履歴を削除する。cvs や svn 等では、履歴に触れる御法度なのだが、パッチ管理が基の git では手軽かつ、必須。--hard を付けないと、現在 checkout してあるファイルがそのままになるので、邪魔になる。