ushumpei’s blog

生活で気になったことを随時調べて書いていきます。

最低限必要なGitコマンド

友人に説明する必要性が出てきたので頭の整理を兼ねてメモしておきます。どんなものがあるでしょうか?自分的には最低限以下のやつらかと思います。(mergeとかはプルリクエストで行うので直接打たない想定)

status, log, diff, pull, push, checkout, add, commit, reset

めちゃくちゃ主観的なワークフロー的なものを描いて見ました。基本的には、新しいブランチ作るコミットいくつか作るリモートにブランチをプッシュするの一連の流れができればいいという話かと思います。

# 現状把握系(随時、癖のように打つ)
$ git status # 現在のワーキングディレクトリ、ステージエリアの状態みる
$ git log --graph --oneline # ブランチの状態確認
$ git log --graph --oneline --all # リポジトリの状態確認
$ git log -p # 直近何やってたか確認


# ローカル最新化
$ git checkout <branchname> # 最新化の準備(大体master)
$ git pull # 最新化


# ブランチ作成とチェックアウト
$ git checkout -b <newbranchname> # 作成してチェックアウト
$ git branch -d <newbbbbranchname> # タイポしたので削除


# コード書いてコミットを繰り返す
$ git diff -w <filename> # 差分確認
$ git add <filename> # ステージ
$ git reset HEAD <filename> # ステージやめる
$ git checkout <filename> # 変更戻す
$ git diff HEAD # コミット前最終確認
$ git commit # コミット


# プルリクエスト準備のため、ローカルブランチをリモートにプッシュ
$ git push -u origin newbranchname

感想

本当に最低限なので、cloneとか一度やったらあとはやらない系はのぞいています。ファイルの変更取り消し、ステージの取り消し、ときたのでコミット取り消し(reflogreset --hard)もいるかと思ったのですが、余裕ができたらでいい気がします。

参考リンク

あとGitに関する大まかなイメージを持っていると楽かもしれないです。