在等待下一個帶來重要更新的git大版本同時,讓咱們先來看看最新的修正版1.8.5的特性說明。git
下面是我做爲普通git用戶從我感興趣的發佈說明文檔中發掘到的信息。github
噢,若是你還沒看過我以前的發佈筆記,那就去看看吧,1.8.2、1.8.3 和1.8.4。web
按慣例,我會提供一些升級的建議,包括警告和提醒(大部分時候,這些建議官方會發布的比較慢,咱們也控制不了)。下面是一份升級指導:ubuntu
這個特性開發了一段時間,最終能夠了:HEAD有了一個新的別名,@。如git log @.segmentfault
Rebase有以下改進:
* 在–interactive rebase的操做中,提交的id會遵守core.abbrev的長度(core.abbrev是保存提交的哈希的縮寫長度的配置項,默認爲7)。
* 你如今能夠經過修改配置pull.rebase到preserve,來定製git pull –rebase是否使用默認狀況下變平仍是保留合併。對這一點的細節和rebase –preserve-merges的做用,請參考Stack Overflow的答案。windows
此次發佈中包含了很多git status的改進:
* 再也不打印$name.ignore設置爲all的子模塊的變化信息。
* 在cherry-pick中顯示當前被選中的提交。
* 輸出中再也不包含以#開頭的行。若是你用腳本解析git status的輸出,如今須要更新爲git status –porcelain。
* git status 和 git branch -v -v 如今區別不依賴任何其餘分支的分支,和依賴的分支同步的分支,以及依賴一些已經不存在分支的分支。後端
git diff –diff-filter已經能夠過濾幾種不一樣的變化:瀏覽器
–diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
只選擇哪些添加 (A), 賦值 (C), 刪除 (D), 修改 (M), 重命名 (R)的文件, 它們的類型(如 普通文件, 符號連接, 子模塊, …) 是否改變 (T), 是否未合併 (U), 是未知 (X), 或它們的對崩潰(B). 任何過濾字符的組合(包括none)都可使用。當組合中包括All或none,若是任一文件匹配了其餘選項,就選擇了全部路徑。若是沒有文件匹配其餘選項,什麼都不作。cookie
Diff如今支持接受小寫字母參數,含義爲展現全部非指定類型的變化。性能
http.*變量如今能夠指定URL。以下例子會在和指定的站點交互時關閉http.sslVerify。
[http] sslVerify = true [http "https://weak.example.com/"] sslVerify = false
在每一個發佈版本中,子模塊的支持一直在持續改進。此次git支持了子模塊的從新定位。
‘git mv A B’在移動子模塊A時,git支持從新定位其工做數,調整其路徑以匹配.gitmodules文件。
下面是直接從發佈說明中摘出來的點:
* git whatchanged不建議使用,但沒有去除。其在文檔大部分篇幅中重要性下降。
* git cherry-pick 如今支持git cherry-pick – 以從前一個分支獲取。
* xdg-open能夠用做 git web-browse的瀏覽器後端,進而豐富了git help –w的輸出。
* 和make –C同樣,git –C…使Git在執行任何操做以前先切換到那個路徑。
* 使foo^{tag}去除自身的一個tag,也就是空操做,並在foo不是一個tag時失敗。git rev-parse –verify v1.0^{tag}會簡化以下操做test $(git cat-file -t v1.0) = tag。
* git push –no-thin 實際上禁止了「thin pack transfer」優化。
* 智能路徑規範能夠在更多的地方使用。如「:(icase)makefile」匹配Makefile和makefile;「:(glob)foo/**/bar」匹配bar,foo以及任意foo的子文件夾。
* Git blame如今能夠接受不止一個-L選項來獲取原版本中多行信息。
* http客戶端可使用http.savecookies配置變量請求保存cookies。
* Git fetch(git pull同樣)會檢查fetch.prune和remote.*.prune配置變量。其行爲和加上-prune命令行參數同樣。
原文連接: atlassian , 轉載自: 伯樂在線 - Codefor
備註:經 Segmentfault 編輯升級 Git 後試驗測試,文章中,使用 git 帶上參數時,大多格式如 "–interactive rebase"的應該"--interactive rebase",這裏的"-"應爲"--", 多是做者的 blog 系統自做聰明地把 "--"替換成"-"所至。