你是否有過破壞了某個文件,想要從新開始?
或者須要的文件在另外一個分支中?
下面的命令讓你直接從某個分支取到那個文件。html
git checkout some-other-branch -- yarn.lock
你也能夠從某個 commit 中取到 yarn.lock 文件git
git checkout 9146467 -- yarn.lock
相比 cherry-pick
拿到某個 commit 的全部文件,這個技巧能夠只拿到想要的那一個文件。瀏覽器
使用 merge 合併時會產生一個新的提交,有時候這個提交很煩人。若是你想要查看日誌時過濾掉這些合併的提交,可使用如下命令:bash
git log --oneline --no-merges
若是你最近的一次提交中,commit 信息寫的很差或者有錯別字,能夠用如下命令修改:ide
git commit -v --amend
這裏的 -v
是可選的,它能夠提過一些額外信息來幫助你描述 commit messageui
首先來解釋一個概念:
若是你建立了一個新文件,這個文件以前不存在於 git 歷史中,那麼這個文件就是一個未跟蹤的變動。爲了跟蹤這個文件,你須要將它提交到 git 中。spa
若是使用 git checkout .
則會清除全部已經跟蹤的變動。而使用如下命令能夠清除全部未跟蹤的變動:日誌
git clean -f -d
使用如下命令能夠打印出可視化的 logcode
git log --pretty=oneline --graph --decorate --all
(譯者注:湊合看,跟 sourcetree 的仍是不能比~)htm
此命令能夠向 Git 查詢在兩個 commit 之間,都有誰作了哪些變動,看起來就像一個 changelog 同樣
git shortlog <commit>..HEAD
上面的 <commit>
填寫 commit 的 hash 值,就能夠查出該 commit 和 HEAD 之間的變化,其中 ..
後面的 HEAD
也能夠省略
你也能夠用 git shortlog HEAD~20..
取最近 20 個 commit 的記錄
你可能須要查詢某兩天之間的 git log,這時能夠用 git log
命令配合 --since
與 --util
標識符
假如你想要查詢 2016年2月10日 至 2016年2月19日 之間的日誌,你能夠運行:
git log --since='FEB 10 2016' --until='FEB 19 2016'
有時候你可能忘記了以前設置的 git 別名,下面的命令雖不是 git 的功能,可是卻能幫你找到全部的 git 別名
git config -l | grep alias | sed 's/^alias\.//g'
若是你知道要找的代碼具體寫的是什麼,或者知道某個特別的關鍵字,你就能夠用它來搜索。
git log -S"config.menu_items"
本例中會查找全部包含 config.menu_items
的提交
git help -g
能夠看到相似下面的 git 教程列表,經過 git help <concept>
便可在瀏覽器打開指定的教程網頁,左邊那一列即爲 <concept>
名稱
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 工做流概述
歡迎關注個人公衆號:碼力全開(codingonfire)