概要
表題の通りです。思いついたら随時更新していきます。
コマンド集
カレントに切り替えずに ブランチ を最新化
# `:` を挟んで左側がリモート(fetch 元)、右側がローカル(fetch 先)
# 当然カレントブランチに対して行うとエラー
git fetch origin master:master
git fetch origin develop:develop
カレントの変更内容を違う名前のリモートブランチにpush
# `:` を挟んで左側がローカル、右側がリモート
git push origin feature/local:feature/remote
# 今のブランチの内容を push したい場合
git push origin HEAD:feature/remote
リモートの追跡を解除する
# 結構使いたいコマンドだが調べると意外とこのコマンドを載せている記事が無い。
# 割と調べるのに苦労したので記載します。
git --unset-upstream
直前のコミットメッセージを変更する
# 以下のコマンドを打つと vi が開くので編集して保存
# コミットIDが書き換わるので他の人と作業している場合普通にコンフリクトします
# 周りの人に影響が無いかどうかを確認してから実行するようにしましょう
git commit --amend
複数個前のコミットメッセージを変更する
# HEAD~2 でコミットの範囲を指定。 この場合 2つ前までのコミットを指定している
# vi が開くので書き換えたいコミットに対し、 `pick` となっている箇所を `edit` に変更して保存
git rebase -i HEAD~2
# 以下を実行すると vi が開くのでコミットメッセージを編集して保存
git commit --amend
# 編集したコミットを確定させる、複数 edit に変えた場合は amend -> continue を繰り返す
git rebase --continue
ローカルを無理矢理リモートに合わせる
# 下の例は develop に合わせる場合です。ブランチ名は適宜変更してください
# このコマンドは編集中のものがすべて消えるので git stash で退避してください
git reset --hard origin/develop
ローカルのカレントブランチと同名のリモートに対してブランチ名を指定せずに push
# 初回 push 時によく使っています
git push origin HEAD