尋常でないもふもふ

a software engineer blog

git のターミナル運用でよく使うコマンド

普段は SourceTree つかってるのでメモっておかないと忘れる
 

間違えてコミットしたファイルを取り消す

WebStorm の設定ファイル(.ideaディレクトリ)を間違えてコミットした場合

$ git rm -r --cached .idea
$ git commit -m 'Discard idea files'

-r はディレクトリ指定、--cached は実際のファイルは削除せずにコミットからのみ消すオプション
 

コミットログを1行でみたい

通常、6行で表示されるためターミナルだとみにくい

$ git log --oneline

 

フォーマットを指定してコミットログをみたい

上記の --oneline だと日付が表示されないため不便
直接指定することができる - Git - コミット履歴の閲覧

$ git log --author="jnst" --date=iso --pretty=format:"[%ad] %h %an : %s"
[2016-10-20 23:36:42 +0900] 29e5239 jnst : 3回目のコミット
[2016-10-20 22:45:47 +0900] 4367df3 jnst : 2回めのコミット
[2016-10-20 22:40:14 +0900] 04abbe8 jnst : 最初のコミット

 

リポジトリの最初のコミットがいつなのか知りたい

git log の --reverse を使うことで確認できる

$ git log --reverse --date=iso --pretty=medium

 

ローカルリポジトリのユーザー名を変更

global のユーザーではなく、local のユーザーを設定してコミットしたい場合

$ git config --local user.name 'jnst'
$ git config --local user.email 'jnst@example.jp'

確認

$ git config --local --get user.name
$ git config --global --get user.name

 

自分の PC 上だけで全適用されるグローバルな .gitignore をつくる

Using Git / Ignoring files
リポジトリの .gitignore ではなく、自分の PC だけで適用されるグローバルな .gitignore を用意した方が良いケースがある。
例えば Node.js のプロジェクトで、自分は WebStorm で開発しているから「.idea」ディレクトリを除外したい。しかし他のメンバーも WebStorm で開発しているとは限らない。内輪で開発してるプロジェクトなら .gitignore に追記して push すれば良いが、公開されていて誰でもプルリクできるプロジェクトの場合は、環境固有の設定をコミットすべきではない。

$ git config --global core.excludesfile ~/.gitignore_global
$ vi ~/.gitignore_global

   

git コマンドのカラー表示

git status とかしたときに文字列が配色されて表示されるようになる

$ git config --global color.ui true

   

うっかり消滅させたコミットを復元

gitreflog を使うと一覧にでてくるのでそこで見つけたコミットからブランチを作成する

$ git reflog
$ git branch recover-branch 'HEAD@{13}'