addとcommit
git add -u
-uつけると更新されたオブジェクトを全てaddするが新規ファイルはaddしない
git add -A
-Aつけると更新されたオブジェクトと新規ファイルを全てadd
git commit -a
更新されたオブジェクトのコミット。add -u / commitのショートカット
git log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
このログをaliasにすると完璧。
取り消し・リセット
いろんな状況に応じて、適切なやり直し方がある。
超まとまってるサイト↓
gitでアレを元に戻す108の方法
さっきの取り消したい!って時のGitコマンドまとめ
git checkout ファイル名`
add前の作業ツリー内の変更の取り消し
=最新のコミット状態からやり直し
git checkout HERD ファイル名
add後commit前の変更の取り消し
git commit --amend -a -m '〇〇'
--amendは、直前のコミットを訂正する。
=新しくコミットするのではなく、直前のコミットを置き換える
※ログメッセージの変更が必要ない場合、-C HEAD
オプションを指定。
git reset HEAD~2
または
git reset HEAD^^
2個前のコミット状態に戻る。1個前だったら、HEAD~1 もしくは HEAD^
となる。
なお、ワーキングツリーの状態は変更されない。プロジェクトの歴史を消すことになるので、実行には注意が必要。
--hard
オプションをつけるとワーキングツリーすらそのコミット状態に同期される。怖いコマンド。
ただ、ワーキングツリーのファイルを謝って削除してしまった場合は
git reset --hard HEAD
ですぐに元どおりになる。
.gitconfigファイルの設定
以上にあげたオプションを頻繁に利用する場合は、いちいち打つ(orコピペする)のが面倒であるため、~/.gitconfigファイルにaliasとして登録すればいい。
参考:
- gitで便利なエイリアス達
- その他の.gitconfigファイルの設定のすすめ
- RevertとBlameを使いこなして安全性の高い開発を推進しよう
- gitコマンドチートシート
- git tagの使い方まとめ