最近の自分が、どんな風に Git を使ってるか、メモを残しておこうかなと思ったので書くことにした。こういうの、以前に書いたかもしれない?と思ったらあった↓
この頃はコマンドだけ使って操作してたけど、最近は JetBrains の IDE から一部操作するようになったのだ!便利!
エイリアス
話に入る前に、使ってるエイリアスを紹介。自分で考えるの苦手なのでこの設定ファイルをコピーしてきて使ってる↓
https://github.com/timcharper/git_osx_installer/blob/master/assets/etc/gitconfig.default#L23-L41
とは言いつつ、最近おもに使ってるのは git l
くらいかな
l = log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
ステップ1:クローン→ブランチ作成
クローンからブランチ作成周りは、相変わらずコマンドでやってる。以前と違うのは checkout
じゃなくて switch
を使うようになったことかな。せっかくなので前回の記事と同じリポジトリを使ってみる
クローンしてきたらグラフを git l
で表示
トラッキングブランチが苦手なので、一旦、ターゲットのリモートブランチに git switch -d
で移動してしまう
❯ git switch -d origin/ch03
HEAD is now at 741d278 fix encoding
そうすると↓こんな感じで、ブランチを作らずに HEAD
がそのコミットに移動するので
そこでブランチを git switch -c
で作ってる
❯ git switch -c BUF-001/for-blog Switched to a new branch 'BUF-001/for-blog'
以前は work
みたいに適当な名前でローカルブランチを作ってたけど、今は JetBrains IDE を利用するようになったこともあって、リモートで使う予定の チケット番号/概要
みたいなブランチ名をローカルでも使うことが多い
そんな感じで git switch -c
すると、HEAD
が BUF-001/for-blog
になる
ステップ2:変更→コミット
コミット周りは JetBrains の IDE から操作してる。IDEA と WebStorm を使ってる
Commit タブから、変更一覧を見ることができるので、そこで差分をチェックして
コミットに含めたいファイルにチェックを入れて(複数可)、コミットメッセージを書いて、Commit ボタンを押す
前回のコミットにマージしてしまいたい場合は、Amend のチェックボックスにチェックをいれて Commit ボタンを押すと Amend になる
ステップ3:プッシュ
IDE からもできるんだけど、なんとなくプッシュ周りはコマンドラインでやってる。git l
で確認して
git push
する
❯ git push origin BUF-001/for-blog Enumerating objects: 13, done.
以上!
コミット周りを JetBrains の IDE でやるようになったので、だいぶシンプルになったかな。commit
add
status
diff
を使う機会が減った
まぁ IDE を使ってないものは、今まで通りコマンドで操作してるんだけども
もうちょっと JetBrains IDE の Git 周りを有効活用しても良いような気もしてるけど、今のところ、これくらいで満足してる
おまけ:他によく使う Git のコマンド
git fetch -p
でリモートの更新を取得
- トラッキングブランチや
git pull
が苦手なので、いつもgit fetch -p
git rebase
でブランチの移動
main
ブランチが更新されたときに、たまに作業ブランチを付け替えたりする
git rebase -i
でコミットの操作
- コミットをまとめたり、コメントを書き換えたりするのに使う
git branch -m
でローカルブランチのリネーム
- プルリクエストがマージされてローカルブランチがいらなくなったら、別のチケット用にリネームして使ったりする
git branch -d
でローカルブランチの削除
- いらなくなったローカルブランチの削除ちょこちょこする。
-D
で強制削除したりもする
git reset
で変更のやり直し
- 例えば
git reset HEAD~1
で、今いるコミットの変更を未コミット状態にして、変更をやり直したりする
git reset --hard HEAD
git clean -df
で変更を削除
- 記録に残らなくていいものはこれで削除。コミットせずに
git reset --hard
すると元に戻せないので気をつけないと悲しいことになる。後で見たいかも?と思う場合はとりあえずコミットするようにしてる
git stash
git stash --pop
で一時的に退避
- 作業中の変更を一旦横に置いておきたいときに使う
あれ?最近 git merge
使ってないなぁ。あんまり変更がかぶらないからかな。update-ref
も全然使わないや。cherry-pick
は、たまーに使うかなぁ
よく使うわけじゃないけど、覚えてるのが git reflog
。コミットさえしてれば、何かあったときに git reflog
で元に戻せる!
また Git のドキュメントでも眺めて、自分が使いそうなコマンドを探してみよっと
僕の推し Git コマンド
やっぱり git switch
かな!よかったらあなたの推し Git コマンドを教えて下さい!