Open2
git
git
git cli を快適に使う
- brew install git tig
- git のサブコマンド・オプション・ブランチ名等の補完が効くようにする
- git alias を設定する
- git の使い方を知って恐怖心を無くす
- Sourcetree を uninstall する
直前の commit に差分を追加する
git commit --amend --no-edit --all
直前の commit を(差分を残しつつ)取り消す
git reset --soft HEAD~
過去の commit に差分を追加する
commit ---fixup を使う方法
git commit --fixup xxxxxxx
git rebase --interactive --autosquash origin/HEAD
rebase --interactive を使う方法
git stash
git rebase --interactive origin/HEAD
# 追加する対象のcommitの行をpickからeditに変更
git stash pop
git commit --all
git rebase --continue
過去の commit を並び替える
git rebase --interactive origin/HEAD
# viで行を並び替えることでcommitの並び替えを行うことができる
git を安全に使う
current branch を SHELL のプロンプト($PS1)に出す
状態を見える化してミスを防ぐ
git branch -d main
ミスの元なので local に main branch を作らない。
代わりにorigin/main
かorigin/HEAD
を使う。
fetch するだけで必ず最新になるのも利点。
git merge origin/HEAD
git rebase origin/HEAD
git switch origin/hoge
自分の作業ブランチ以外は local branch を作らない。
git config --global push.default current
デフォルトで current branch を同名の remote branch に push する。
push する時に branch を指定すると逆に危険なので指定しない。
ただし、(すごく)古い git 環境で branch を指定せずに push すると全ての local branch が push されてしまうのでこれも注意。
git push --force-with-lease
https://qiita.com/wMETAw/items/5f47dcc7cf57af8e449f
git push -f をやめて --force-with-lease を使おう
git config --global alias.pf "push --force-with-lease"
GUI アプリとかがバックグラウンドで定期的に fetch してると、ほぼ意味がなくなる。