はじめに
バイトとサークルでWEB開発をしている大学二年生です。備忘録も兼ねて、自分がGitでまあまあ使う、便利なコマンドをまとめてみました。
git fetch
git fetch origin
このコマンドを使うと、ローカルのGit君がリモートにどんなブランチがあるのか全て見てきてくれる。リモートのブランチをローカルに引っ張ってくる上でfetchコマンドは必須で、どこでも対応できるoriginが便利。
(fetchしただけでローカルにブランチが生えるわけではない)
↓リモートのブランチをローカルに引っ張ってくる最も簡単な方法
git fetch origin && git checkout [リモートブランチ名]
これなら、自動的にリモートブランチと接続してくれるので、push時の--set-upstreamが不要です。
git stash
git stash -u
超便利なstashコマンド。 git stash -uでcommit前の変更すべてをコードから消して一時保管できる。自分が作った差分による挙動の違いを簡単に比較できるので動作確認にbefore-afterの比較が楽。-uオプションは付け得
(実は自分が作った編集の差分を破壊したいときにも早くて便利)
git stash pop
一時保管したものをコードに戻すコマンド。 git stashとセット。
git stash -u -k
git stash -u -kではステージング前(addする前)の変更だけstashできる。自分の編集の一部分のみを退避できることが動作確認上で非常に便利。
stashの-uと-kオプションはすごく便利なので覚えとくと得かも。私はUK(United Kingdam)で覚えました
git reset
git reset --soft HEAD~
最新のコミットを取り消してステージング状態(add後)に戻すことができます。
間違えてコミットした/formater通してなかった/他の人の編集差分をローカルで見たい、なんて時に重宝します。
git worktree
git worktree add ../[フォルダ名]
git worktree remove ../[フォルダ名]
git worktreeを使うと、自分のブランチの現在地を増やすことができる。
例えば、画面を縦に分割して左にmainブランチ、右にdevelopブランチ、なんてことができる。
▼同時に別ブランチにいる!

この機能を使うと、作業中のブランチをコミット前の変更を残したまま置いておいて、他のブランチで作業することが可能になる。また、CLI型のAIを使う時に、完全に別の作業を干渉することなく同時実行できるのでとても便利である。
しかし、ワークツリーは面白いし便利な機能だが、万能とは程遠い。
これはソースコードを丸ごと一つ増やすことで実現されている。
▼/snsでgit worktree add ../sns2と実行すると、ソースコードが倍になった!

そのため、worktreeを使うたびにPCのストレージを食いつぶす上、テストもコンテナの仕様によっては干渉して同時実行できない。使い終わったらremoveで消すべし。