提升效率的 10 個 Git 小技巧

1. 從某個分支檢出單個文件

你是否有過破壞了某個文件,想要從新開始?
或者須要的文件在另外一個分支中?
下面的命令讓你直接從某個分支取到那個文件。html

git checkout some-other-branch -- yarn.lock

你也能夠從某個 commit 中取到 yarn.lock 文件git

git checkout 9146467 -- yarn.lock

1-checkout.png

相比 cherry-pick 拿到某個 commit 的全部文件,這個技巧能夠只拿到想要的那一個文件。瀏覽器

2. 查看日誌時過濾掉 merge commits

使用 merge 合併時會產生一個新的提交,有時候這個提交很煩人。若是你想要查看日誌時過濾掉這些合併的提交,可使用如下命令:bash

git log --oneline --no-merges

2-filter-merge.png

3. 重寫最後一次的 commit message

若是你最近的一次提交中,commit 信息寫的很差或者有錯別字,能夠用如下命令修改:ide

git commit -v --amend

這裏的 -v 是可選的,它能夠提過一些額外信息來幫助你描述 commit messageui

4. 清除全部未跟蹤的變動

首先來解釋一個概念:
若是你建立了一個新文件,這個文件以前不存在於 git 歷史中,那麼這個文件就是一個未跟蹤的變動。爲了跟蹤這個文件,你須要將它提交到 git 中。spa

3-clear-untracked.png

若是使用 git checkout . 則會清除全部已經跟蹤的變動。而使用如下命令能夠清除全部未跟蹤的變動:日誌

git clean -f -d

5. 打印一個可視化的 log

使用如下命令能夠打印出可視化的 logcode

git log --pretty=oneline --graph --decorate --all

(譯者注:湊合看,跟 sourcetree 的仍是不能比~)htm

6. 向 Git 查詢 changelog

此命令能夠向 Git 查詢在兩個 commit 之間,都有誰作了哪些變動,看起來就像一個 changelog 同樣

git shortlog <commit>..HEAD

上面的 <commit> 填寫 commit 的 hash 值,就能夠查出該 commit 和 HEAD 之間的變化,其中 .. 後面的 HEAD 也能夠省略

4-query-changelog.png

你也能夠用 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 <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)

codingonfire.jpg

相關文章
相關標籤/搜索