必ず使う以下のコマンド以外で、業務上個人的によく使うコマンドやオプションをまとめます。
こちらのコマンドの基本的な使い方は調べると色んな方が書いていると思うのでそちらをご覧ください。
- git clone
- git add
- git commit
- git push
- git pull
ローカルのremoteブランチ状態を最新にする
かなりたくさんの人がいるプロジェクトだと頻繁にブランチが作成・削除されるので、よくこのオプションをつけています。
$ git fetch --prune
以下設定で自動付与も可能。
$ git config --global fetch.prune true
ローカルの変更内容を一時退避
$ git stash
一時退避したリストを見る
$ git stash list
一時退避した内容を確認する
$ git stash show stash@{x} -p
$ git stash show -p # リストの一番上を確認する場合
※GUI使ったら楽に内容確認できます。
一時退避した内容を取り出す
$ git stash pop stash@{x}
$ git stash pop # リストの一番上を取り出す場合
ローカルブランチの切ったベースを最新にする
一度push済みのブランチにはやらないでください。
$ git rebase -i origin/xxxxx
コンフリクトが起きたら適宜解消して以下コマンドを打つ。
$ git rebase --continue
やっぱやめたくなったら
$ git rebase --abort
一つ前のコミットをローカルに残しつつ無かったことにする
一度push済みのブランチにはやらないでください。
ブランチを移動しまくるためにローカルで一度仮的な感じにコミットをして、その後正しい内容のみでコミットし直す時によくやります。
$ git reset --soft ^HEAD
これでログからは消え、変更内容が全てstaging状態になります。
ここからさらにコードの変更するなりしてreset/restore、add、commitしてください。
部分的に作業を元に戻す
※GUI使ったら楽ではあります。
部分だけaddして、残した分を全て戻します。
$ git add -p .
$ git restore . または git checkout .
(おまけ)部分的にstagingに追加する
これもGUI使えばいい話ですが、通常のコミットも作業内容確認と作業用の不要なコードをコミットしないためにgit add -p
で内容を確認しつつstagingしてます。
がっつとまとまってしまう場合はs
で分割してます。
よく使うのは、y
, n
, q
, s
, g
です。
y - この変更部分(hunk)をステージングする
n - この変更部分をステージングしない
q - 終了する。この変更部分および残りの変更部分をステージングしない
a - この変更部分およびファイル内のそれ以降の変更部分をすべてステージングする
d - この変更部分およびそれ以降の変更部分をすべてステージングしない
j - この変更部分を保留にして、次の保留中の変更部分に進む
J - この変更部分を保留にして、次の変更部分に進む
g - 移動する変更部分を選択する
/ - 指定した正規表現に一致する変更部分を検索する
e - 現在の変更部分を手動で編集する
? - ヘルプを表示する
直前にいたブランチに移動
$ git switch - または git checkout -
ブランチ名を変える
$ git branch -m 変更後のブランチ名 # 今いるブランチの場合
$ git branch -m 現在のブランチ名 変更後のブランチ名
直接コミットしないブランチをローカルで最新化する
mainやdevelopは直接コミットが禁止されていることが多いですが、ローカルに落としていると思います。
変更内容が多すぎたり、git pullしてもうまくいかない時、ローカルから該当ブランチを一度消して最新に切り替えます。
$ git branch -D develop
$ git fetch
$ git checkout develop
まとめ
使用タイミングに注意すべきコマンドもありますが、ポイントを押さえておけば通常の作業で便利なコマンドもたくさんあります。
たまに不安になって自分もやりますが、動作がイマイチ分からないものは壊してもいいリポジトリを作って挙動を試した上で使ってください。