知ってると便利な git command の紹介

+α 開発プラクティスの共有

📖 概要

普段 VS Code などの GUI から git を操作している人に向けて、知っていると便利な git command を紹介します。 ユースケースに基づいて git コマンドやそのコマンドのオプションを紹介するのでなにかに役立つかなと思いますが、 特に深堀りはしないのであとはご自分で調べてください!(いつか深堀り版を出すかも

※注意 厳密にいうとちょっと違うみたいなやつも用途に合わせて説明を書いています。 (working tree とか index とかを出さないようにしています)

🎯 対象

  • 普段 vscode で git を操作している人
  • cli に慣れていない人

🚨 今回紹介しないこと

  • git 自体について

そもそも git を知らない場合はまずは git について調べてください!

https://git-scm.com/

🔖 目次

  1. リポジトリの初期化
    • git init
  2. 変更のステージ
    • git add
  3. 変更を commit する
    • git commit
  4. 現在の変更状態を確認したい
    • git status

🔖 目次2

  1. commit 履歴を見たい
    • git log
  2. 変更のステージングを取り消したい
    • git restore --staged
  3. 前回の commit を上書きしたい
    • git commit --amend
  4. 特定の commit から branch を作成したい
    • git checkout -b

🔖 目次3

  1. 個人的な Git + GitHub 開発プラクティス

リポジトリの初期化

基本以下でOK

git init

.git ディレクトリが作成されます

❯ ls -a
 .git   main.v   sub.v

https://git-scm.com/docs/git-init

変更のステージ

に変更したいファイルPATHを指定します

git add <path>

今ある変更ファイルを全てステージ

git add -A

https://git-scm.com/docs/git-add

変更を commit する

以下のコマンドを実行するとデフォルトのエディターが開いて commit メッセージを編集することができます

git commit

cli でメッセージも指定する場合は以下(日本語の場合はダブルクオートで囲むと良い)

git commit -m <message>

https://git-scm.com/docs/git-commit

現在の変更状態を確認したい

❯ git status

On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   main.v

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   sub.v

https://git-scm.com/docs/git-status

commit 履歴を見たい

git log

短く表示したい

❯ git log --oneline
6e0ad11 (HEAD -> main) update main.v complete
3b757b3 update amend
d4da05f add sub
b712382 first

https://git-scm.com/docs/git-log

変更のステージングを取り消したい

git status コマンドを使います

# 特定のファイルのステージングを取り消す
git restore --staged <path>

# 現在のディレクトリ以下のファイルのステージングを取り消す
git restore --staged .

# ステージングされていないファイルの変更を取り消すときは `--staged` なしで実行する
git restore <path>

前回の commit を上書きしたい

前回のコミットを上書きするには --amend を使います

追加で修正を実施したので上書きしたい(複数ファイルを含む変更も可能

git add <path>
git commit --amend -m "fix: 追加修正"

commit メッセージだけ修正したい

git commit --amend -m "誤字を修正"

特定の commit から branch を作成したい

git checkout <commit> -b <new branch>

個人的な Git + GitHub 開発プラクティス

  • commit
  • Pull Request (出す側)
  • Pull Request (見る側)

commit

  • 意味のある単位で commit する
  • commit には Why を書く
    • commit にそれぞれ背景を書いておく
  • メッセージテンプレート例
<type>(任意 スコープ): <タイトル>

[任意 本文]

[任意 フッター]

引用: nice.dev

Pull Request (出す側)

  • できるだけ細かい単位で PR を出す
  • 作業を開始したら Draft で PR を出しておく
    • 作業進捗が可視化される
  • セルフレビューをする
    • ここで見つかるバグもある
  • レビュー観点を PR にまとめておく
  • commit log はキレイにしておく

Pull Request (見る側)

  • 共有された観点を確認する
  • 危険な兆候には立ち止まる
    • 簡単に理解できない
      • 相手の方が詳しいからOKだろうは危険信号🚨
    • 未熟な実装
    • メンタルモデルと一致しない
  • 友好的な態度でレビューする
    • テキストは口頭よりもきつめに感じてしまう場合があるので優しめにコメントを書く

その他参考

その他参考