git ファイルはたまに壊れる
git ファイルが壊れると、
最悪どの git コマンドもエラーを起こし、
push も pull も reset も出来なくなる。
が、そういう時は、
壊れた git ファイルを直すよりローカルファイルを退避させて、
リモートリポジトリから clone する。
この方法で実務でも特に困ったことがないので、
とりあえず壊れたら clone するのがオススメ。
本当はエラー毎に対処方法が細かく違うけど、
上記の方法がいちいち調べなくても良いので楽。
# 退避
$ mv /path/to/your/project /path/to/your/project_temp
# 空のディレクトリ生成&移動
$ cd /path/to/your
$ mkdir project
$ cd /path/to/your/project
# クローン
# 最後尾のドットを忘れずに。
$ git clone git@github.com:username/repo.git .
# ブランチ作業中に壊れたりしたら、
# リモートリポジトリから該当ブランチを持ってくる
$ git checkout -b branchName origin/branchName
あとは退避しているファイル群から、
コミットし忘れたファイルなどを移動したりして、
作業していた状態まで戻せば終わり。
エラー色々
fatal: index file smaller than expected
error: unable to resolve reference ORIG_HEAD: ????
fatal: Cannot lock the ref 'ORIG_HEAD'.
error: Could not read xxxxxxxxxxxxxxxxxxxx
fatal: Failed to traverse parents of commit xxxxxxxxxxxxxxxxxxxx
error: bad signature
fatal: index file corrupt
git を使うにあたって
git は細かくブランチを切って、
小さく作業していくのが正しいと思う。
が、実際にはそううまくいかないので、
個人的には状況次第でスピード優先したり、妥協したりしていいと思う。
ブランチのうまい切り方は、
github の有名なオープンソースなどを参考にすればいいと思う。
例えば、
angular/angular
golang/go
sveltejs/svelte
正解はないと思うので、しっくりくるものを真似すればいいと思う。