git log
git log
可以看到從最開始到現在所在位置(HEAD)的所有commit
git log -4
git log -想看到的commit數量
如果打 git log -4
就會只看到離現在最近的四個。
git — — oneline
git log--oneline
只顯示short hash和第一行。
git --log decorate
顯示時會加上branch name
git --log graph
可以顯示ASCII樹狀圖。
git log --oneline --graph --decorate --all
可以把上面的所有指令都串在一起使用
git log -p
同時顯示commit以及diff
git shortlog
可以把不同人的commit分開顯示
git shortlog
git shortlog -4
可以只顯示最近的四個commit並用作者分類
git shortlog origin/master..Head
看從origin/master到現在位置的所有commit以及照著作者分類
git log --author=”要找的作者名”
git log --grep=”找尋commit message中含有的字”
搜尋某個檔案的所有log
git log -- 檔案名
git log -S”要在所有commit中找尋的字” -p
在所有commit中找到一個字,並顯示出他與parent的diff
git log -S”Fortran” -p
小補充
git log -S”commit itself中含有的字”
以上是找尋commit”本身”,通常狀況下也就是code內容
git log --grep=”找尋commit message中含有的字”
以上是以上是找尋commit”的訊息”,所以就是每次執行git commit -m”commit message”
的訊息內容。
小撇步
git log -- 檔案名
git --oneline
git log 很多指令都是接 --
這個意思是停止指令,後面只會接檔案名或其他名詞。
所以當有--
的指令,要跟只有一個-
的指令一起使用時,只有一個-
的指令要寫在前面。
像是 git log -- books/ -p
不可行
但寫成git log -p -- books/
就可以執行
— — all
--all
在搜尋東西時,如果你位於某個branch或者local,他只會搜尋你的direct ancestor of your current commit。
加上 --all
就可以連remote或其他branch都搜尋到。