はじめに
便利だが、たまにしか使わないコマンドをメモとして残します。
基本方針
- main へのマージは squash する
- squash するので rebase は使わない
- squash するので feature の commit は自由にする
- main からの merge commit も気にせず入れる
基本的なコマンド
見つからないコマンド
エディターをVimに変更したい
git config --global core.editor vim
リモートの状態に戻したい
git switch feature
git fetch origin # ローカルを最新にする
git reset --hard origin/feature # 強制的に戻す
一時的に変更を退避したい
git stash -u # 退避する
git stash pop # 退避内容を戻して消す apply & drop
マージ先の変更を取り込む
git switch develop
git pull origin develop # ローカルを最新にする
git switch feature
git merge develop # developの変更をfeatureに取り込む
# コンフリクトする場合は解消する
git push
pull requestでCan't automatically merge発生の場合の対応
リモートの直前のコミットを取り消したい
git switch feature
git reset --hard HEAD^ # 1つ前の状態に戻す
git push origin feature
リモートのコミットのコメントを修正したい
forceが利用できる環境のみ可能
git switch feature
git rebase -i HEAD~1
# 一覧の変更したいコミットの pick を reword に変更し、保存する
git push --force origin feature
GitHub Docs - 古いまたは複数のコミットメッセージの修正
空のブランチを作成したい
git checkout --orphan doc
参考
- 本家
- 練習用サイト