DEV Community

yanskun for Seattle Consulting, Inc.

Posted on • Updated on • Originally published at qiita.com

もっと早く出会いたかった git command 達

はじめに

いわゆる n番煎じ
業務で使うコマンドの中でも特に気に入ってるものを並べました。

初心者から、中級者向け?だと思います。

コマンドを覚えると開発がより楽しくなると思います。
あんなこともできるこんなこともできる、できるが増えるって素晴らしいですね。

便利コマンド

差分をステージングエリアに追加する

git add -p
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★★★
基本的に、このオプションでしか add はしない。

差分を取り消す

git checkout {FILE_NAME}
git checkout # 全部なかったことに。
git checkout -p # もある
Enter fullscreen mode Exit fullscreen mode

役立ち度:★☆☆☆☆
時々使うけど、結構危険だと思う。

ステージングエリアから戻す(add する前に戻す)

git reset {FILE_NAME}
git reset # 全部戻す
git reset -p # もある
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★☆☆
コミットしようとした時に、「あれなんでこいついるの?」ってなった時に使う
コミット前には必ず git status しましょう。

指定したユーザーのコミットログを見る

git log --committer={USER_NAME}
Enter fullscreen mode Exit fullscreen mode

重要度:★★☆☆☆
怪しい人を見つけた時に。

コミットIDを指定して、中身を確認する

git show {COMMIT_ID}
Enter fullscreen mode Exit fullscreen mode

重要度:★★★★☆
怪しいコミットがあった時に。
pull したらコミットをたくさん取り込んだ時によく使う。

別のブランチからファイル/コミットを持ってくる

git checkout {BRANCH_NAME} {FILE_NAME}

git cherry-pick {COMMIT_ID}
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★☆☆
別のブランチの作業者が作った共通部品を盗みたい時に。

直前のコミットを修正する

git commit --amend # コミットメッセージも変えられる
git commit --amend --no-edit # vim をスキップ
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★★☆
「この差分もこのコミットに乗せたい」という時に。

ファイル名の変更

git mv {OLD_NAME} {NEW_NNAME}
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★★★
普通にエクスプローラーから名前をすると delete と create になってしまう。
これでファイル名を変更するとログに変更が残るから嬉しい。
(これもオプションがあるわけじゃないけど、意外と使ってる人が少ない...。のでランクイン)

特定のファイルの歴史を確認

git log -- {FILE_NAME}
git blame {FILE_NAME}
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★☆☆

blame の方が有名だけど、 log で見るのも便利な時がある。

マージ済みのブランチの確認

git branch --merged
git branch --no-merged # その逆
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★★☆
削除して良いローカルブランチを見つける。

直前のブランチを指定して〇〇

git checkout - # ブランチ切り替え
git merge - #  マージ
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★★★
ひょっとしたら一番便利かもしれない。
ブランチ名が長くて打ってらんない時に。
ブランチ名を忘れちゃった時に。

マージしたらコンフリクトしたのでなかったことに

git merge --abort
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★☆☆
他の人に聞かないと解消できない時に。

ざっくりした差分をみる

git diff --stat
Enter fullscreen mode Exit fullscreen mode

役立ち度:★★★☆☆
ファイル名と、そのファイルが何行変わったかだけを表示

ステージングエリアの差分を見る

git diff --cached
Enter fullscreen mode Exit fullscreen mode

立ち度:★★★★☆
直前のコミットと、ステージングエリアとの差分を見る。
add + commit を連結して考えてると不要。(結構危険な考えです、やめましょう)
あれ?これコミットしたら何がリモートに上がっちゃうんだろう、と気になって見てください。

リモート削除されたローカルブランチを削除する

git remote prune origin
Enter fullscreen mode Exit fullscreen mode

立ち度:★★★☆☆
branch 名の予測変換が有効になっている場合、
削除されたブランチ名に勝手に変換されてしまって
嫌な気持ちになったことないでしょうか?僕はあります、たくさん
時々綺麗にすると家と同じで気持ちがいいです。

ネタ系

コミット数のランキング

git shortlog --summary -n
Enter fullscreen mode Exit fullscreen mode

楽しさ:★★★★☆
努力を誰となく認められたい時に。
Git はあなたのコミット数を見てくれてます。

最後に

どうでしょうか。
git command でもっと楽しもうって気になれましたでしょうか。
CLI での git 操作ができるようになるともっと楽しく開発ができるかもしれません。
僕は楽しいです。

結構便利コマンド多いなって思います。
shell環境整えたら git command を愛する人になったので、たくさん知りたいです。
「これも使いなよ」っていう、とっておきのコマンドがあったら教えてください。

おまけ

僕の git の alias を晒します

$ git config --list | grep alias
alias.b=branch
alias.s=status
alias.co=checkout
Enter fullscreen mode Exit fullscreen mode

あんまりたくさん作ってもしょうがないかな派です。

ありがとうございました。

Top comments (0)