LoginSignup
154
158

More than 5 years have passed since last update.

gitでもっと早く使っておけばよかったコマンド・オプション

Last updated at Posted at 2016-01-27

今やソースコードのバージョン管理に欠かせないGit。現在では殆どの方が使いこなしている人も多いかと思います。

今回はそんなGitのコマンドで、もっと早くに知っていればよかったなというコマンドを紹介します。

バージョン

  • 2.x系の最新バージョン

log編

グラフ表示する

$ git log --graph

1行で表示する

$ git log --oneline

マージコミットは表示しない

$ git log --no-merges

変更したファイルを表示

$ git log --name-status

上記を組み合わせる

$ git log --one-line --graph --no-merges --name-status

スクリーンショット 2016-01-28 0.02.00.png

ブランチやタグを表示する

$ git log --decorate

ファイル内の行ごとの最終更新を見る

$ git blame file

ログと一緒にdiffも見る

$ git whatchanged -p

参考

http://qiita.com/take4s5i/items/15d8648405f4e7ea3039
http://qiita.com/masarufuruya/items/7480854d4bc2f0443fc1

diff編

ステージングに追加分の差分を表示

$ git diff --cached

差分ファイル名のみ表示

$ git diff --name-only <diff_branch>

diffのアルゴリズムを指定する

$ git diff --histgram(--patience)

参考

変更を一時退避する

一時領域に保存

$ git stash save "message"

一時領域に保存したリストを表示

$ git stash list

一時領域に保存したファイルを適用

$ git stash apply

適用と削除を同時に行う

$ git stash pop

使用ケース

  • ある機能を作成中に別のタスクが入ってしまった場合

参考

status編

シンプルに表示する

$ git status -s

ブランチを表示する

$ git status -b

組み合わせ

$ git status -sb

スクリーンショット 2016-01-28 0.22.52.png

commit編

コミットメッセージを修正する

$ git commit --amend

コミットをまとめる

$ git rebase -i

リベース前に変更内容をスタッシュ

$ git rebase  --autostash

特定のコミットのみを適用する

$ git cherry-pick

コミットメッセージとは別のメモ的な

$ git notes add -m '要リファクタリング'

参考

http://qiita.com/LOUIS_rui/items/8bc0c9058a69a3d6de97
http://rfs.jp/server/git/gite-tech/git-cherry-pick.html

merge編

マージコミットの自動生成をしない

$ git merge --squash

参考

問題箇所を特定する

$ git bisect

参考

grep編

論理演算を使用する

$ git grep -e 'a' --and -e 'b'
$ git grep -e 'a' --or  -e 'b'

過去のコミットから対象文字列を含むコミットを検索

$ git log -S 'hoge'

参考

http://qiita.com/tbaba/items/a67c8d79c6c4d0dc9b73
http://qiita.com/LOUIS_rui/items/86cf7802c4abc6fa4c1e

branch編

追跡ブランチを確認する

$ git branch -vv

追跡ブランチを追加する

$ git branch --set-upstream-to origin/[branch-name]

ブランチ作成と同時に追跡ブランチを追加する

$ git checkout -t branch_name

同じルート リポジトリのチェックアウト済みワークツリーを複数保持する

$ git worktree add branch_name

参考

http://snowlong.hatenablog.com/entry/2015/03/12/212455
http://japan.blogs.atlassian.com/2015/10/cool-features-git-2-x/

revert編

コミットをしない

$ git revert -n

tag編

sort順の変更

$ git tag --sort <type>

参考

追記

2016/1/28 Github落ちましたねー

スクリーンショット 2016-01-28 9.40.48.png

ユニコーンさんが激おこでしたw

154
158
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
154
158