1. 從某個分支檢出單個文件
你是否有過破壞了某個文件,想要重新開始?
或者需要的文件在另一個分支中?
下面的命令讓你直接從某個分支取到那個文件。
你也可以從某個 commit 中取到 yarn.lock 文件
git?checkout?9146467?--?yarn.lock
相比?cherry-pick?拿到某個 commit 的所有文件,這個技巧可以只拿到想要的那一個文件。
2. 查看日志時過濾掉 merge commits
使用 merge 合并時會產生一個新的提交,有時候這個提交很煩人。如果你想要查看日志時過濾掉這些合并的提交,可以使用以下命令:
git?log?--oneline?--no-merges
3. 重寫最后一次的 commit message
如果你最近的一次提交中,commit 信息寫的不好或者有錯別字,可以用以下命令修改:
git?commit?-v?--amend
這里的 -v 是可選的,它可以提過一些額外信息來幫助你描述 commit message
4. 清除所有未跟蹤的變更
首先來解釋一個概念:
如果你創(chuàng)建了一個新文件,這個文件之前不存在于 git 歷史中,那么這個文件就是一個未跟蹤的變更。為了跟蹤這個文件,你需要將它提交到 git 中。
如果使用 git checkout . 則會清除所有已經跟蹤的變更。而使用以下命令可以清除所有未跟蹤的變更:
git?clean?-f?-d
5. 打印一個可視化的 log
使用以下命令可以打印出可視化的 log
git?log?--pretty=oneline?--graph?--decorate?--all
(譯者注:湊合看,跟 sourcetree 的還是不能比~)
6. 向 Git 查詢 changelog
此命令可以向 Git 查詢在兩個 commit 之間,都有誰做了哪些變更,看起來就像一個 changelog 一樣
git?shortlog?<commit>..HEAD</commit>
上面的
你也可以用?git shortlog HEAD~20..?取最近 20 個 commit 的記錄
7. 查詢指定日期的 log
你可能需要查詢某兩天之間的 git log,這時可以用 git log 命令配合 –since 與 –util 標識符
假如你想要查詢 2016年2月10日 至 2016年2月19日 之間的日志,你可以運行:
git?log?--since='FEB?10?2016'?--until='FEB?19?2016'
8. 列出所有 git aliases
有時候你可能忘記了之前設置的 git 別名,下面的命令雖不是 git 的功能,但是卻能幫你找到所有的 git 別名
git?config?-l?|?grep?alias?|?sed?'s/^alias.//g'
9. 查詢包含某個關鍵字的 commits
如果你知道要找的代碼具體寫的是什么,或者知道某個特別的關鍵字,你就可以用它來搜索。
git?log?-S"config.menu_items"
本例中會查找所有包含 config.menu_items 的提交
10. 終極技能
git?help?-g
可以看到類似下面的 git 教程列表,通過 git help
The?common?Git?guides?are: ???attributes???定義?Git?路徑的屬性 ???everyday????每天學點有用的?Git?命令 ???glossary?????一個?Git?詞匯表 ???ignore????????指定?Git?忽略文件 ???modules?????定義?Git?子模塊 ???revisions?????指定?Git?的修訂版和范圍 ???tutorial???????Git?的教程介紹?(for?version?1.5.1?or?newer) ???workflows???一個推薦的?Git?工作流概述
本文來自?git教程?欄目,歡迎學習!