プログラミング/git の変更点

更新


[[公開メモ]]

* 概要 [#x45859d7]

git についての備忘録的メモです。

* alias [#x821df63]

https://git.wiki.kernel.org/index.php/Aliases ここにも参考になる物がいっぱいある。

** git s [#bacfadbd]

 s = status

** git l, git la [#yf186d02]

 l = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
 la = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

** git d [#kfb7cbb6]

履歴選択リスト付きの git diff

リストが表示された状態のまま Enter を押せば、普通に git diff と打ったのと同様に HEAD と working copy との間の差分をとる

履歴を1つ選んで Enter を押せば、その履歴と working copy との差分を取る

Ctrl+space で2つ選べば、その間の差分を取る

 d = !git diff --minimal --ignore-all-space `git log --oneline --branches | peco | ruby -e 'STDIN.readlines.reverse.each{|s| puts s[0..6]}'`

** git add-file [#v99e3026]

git add するファイルを一覧から選ぶ

 add-file = "!if [ \"`git status --porcelain | grep -E '^.[^ ]'`\" != \"\" ]; then git add `git status --porcelain | grep -E '^.[^ ]' | peco | sed -e 's/.* //'`; fi"

** git reset-file [#tf9d5f47]

git reset するファイルを一覧から選ぶ

 reset-file = "!if [ \"`git status --porcelain | grep -E '^[^\\? ]'`\" != \"\" ]; then git reset `git status --porcelain | grep -E '^[^\\? ]' | peco | sed -e 's/.* //'`; fi"

** git tag-date [#be3ffd5e]

git tag のリストに日付をつける

 tag-date = "tag-date="for-each-ref --sort=-taggerdate --format='%(taggerdate:short) %(tag) %(taggername) %(subject)' refs/tags"

http://qiita.com/naoty_k/items/2b9d9560381bbe316818 より

* 現在の .gitocnfig [#z5823ece]

 [alias]
   s = status
   co = checkout
   l = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<                            %an>%Creset' --abbrev-commit --date=relative
   la = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold                             blue)<%an>%Creset' --abbrev-commit --date=relative
   tag-date="for-each-ref --sort=-taggerdate --format='%(taggerdate:short) %(tag) %(taggername) %(subj                            ect)' refs/tags"
   # SYNTAX: git d
   #
   # 履歴一覧を表示して選択した履歴との diff を取る
   # 初期状態のまま Enter を押せば単に git diff と打ったのと同様に HEAD と working copy との間の差分を                            とる
   # 履歴を1つ選んで Enter を押せば、その履歴と working copy との差分を取る
   # Ctrl+space で2つ選べば、その間の差分を取る
   #
   d = !git diff --minimal --ignore-all-space `git log --oneline --branches | peco | ruby -e 'STDIN.re                            adlines.reverse.each{|s| puts s[0..6]}'`
 
   # SYNTAX: git add-files
   #
   # git add するファイルを peco で選択する
   add-files= "!if [ \"`git status --porcelain | grep -E '^.[^ ]'`\" != \"\" ]; then git add `git stat                            us --porcelain | grep -E '^.[^ ]' | peco | sed -e 's/.* //'`; fi"
 
   # SYNTAX: git rm-files
   #
   # git rmするファイルを peco で選択する
   rm-files= "!if [ \"`git status --porcelain | grep -E '^.[^ ]'`\" != \"\" ]; then git rm `git status                             --porcelain | grep -E '^.[^ ]' | peco | sed -e 's/.* //'`; fi"
 
   # SYNTAX: git reset-files
   #
   # git reset するファイルを peco で選択する
   reset-files = "!if [ \"`git status --porcelain | grep -E '^[^\\? ]'`\" != \"\" ]; then git reset `g                            it status --porcelain | grep -E '^[^\\? ]' | peco | sed -e 's/.* //'`; fi"


* コメント・質問 [#o5c9abb1]

#article_kcaptcha

Counter: 2681 (from 2010/06/03), today: 1, yesterday: 2