git init直後のstaging, commit取消
普段ならstagingの取り消しは
git restore --staged <file-path>
(ローカルでの)commitの取消は
git reset HEAD^
でできる。
しかし、git init
直後にはHEAD
がないし、1つ目のcommitにたいしてHEAD^
は存在しないので失敗する。
.git
ファイルを削除して再度 git init
をすれば、別に何かcommitがあるわけではないのでやり直せるが、コマンドで色々できた方がお得感がある気がする。
stagingの取消
gitの追跡対象から外してやればいい
git rm --cached <file-path>
ファイルがUntrackedの状態に戻る。
※ git restore --staged
はステージングエリアをHEADの状態に復元するコマンド。git rm --cached
はファイルの追跡をやめるコマンド。そのため、新規ファイルを追加した際には両者がほぼ同じ挙動になるらしい。
commitの取消
git update-ref -d HEAD
git reset
HEAD
からcommitへの参照を消しているらしい。
これで全てのファイルが未追跡の最初の状態に戻る。