台灣時間 6 / 14 號早上8點左右釋出的新版本,官方 Windows 的 binary release 在中午為止看起來都還停留在 v2.8.4,Mac 甚至還停留在 v2.8.1,而 FreeBSD 的 ports 目前也還沒看到更新,但如果是 Ubuntu 或是基於 Ubuntu 的 GNU/Linux 發行版,只要透過官方的 PPA 就可以直接升上去了。(可以參考 Ubuntu 上的 PPA 整理)
除了每次版本更新都必備的修 bug 以外,這次沒看到明顯跟效能提升有關的更新,背後實作的部份太瑣碎就先不琢磨,列舉依些對使用上有直接影響的更新:
- Shell 的 auto-completion 更新
(就是你打命令要按 tab 把剩下字補完的功能)- 目前看起來還是缺不少指令,不過有更新總比沒有好 …
git rebase -x
現在不需要加-i
參數就可以直接使用了- (rebase 的時候針對每個 commit 跑測試的功能)
- 省下了一些瑣碎的步驟/時間,畢竟不是每個人都需要 interactive 的互動操作
- 之前的版本不加
-i
就會不讓你跑,然後出現錯誤訊息:The --exec option must be used with the --interactive option
- 可以自行指定 hooks 的位置
(將一些事件和行為進行連結達到自動化的功能)- 先前都是放在
.git/hooks
,可以指定之後應該某些專案就可以共用 hooks 了,或許可能就會有人性質相同專案會用到的 hooks 也可以打包成專案釋出?複雜一點的話就是偵測專案性質用比較 general 的方式跑簡單的檢查,syntax check / lint 之類的core.hooksPath
- 先前都是放在
git commit
現在會吃 verbose 的設定,就不用在命令後面加參數了
(顯示更詳細的資訊輸出)git config commit.verbose true
git clone
現在可以直接 shallow clone submodule 了
(clone 的時候不要 clone 整個改版歷史,可以有效減少空間跟頻寬消耗跟提升速度)git clone --shallow-submodules
- git diff / log 預設啟用自動偵測檔名變更
(區別 “檔名變更” 和 “刪除一個舊檔案再寫一個新檔案” 的不同)- 可以透過設定來停用
git config diff.renames false
- 可以透過設定來停用
- 預設禁止沒有共同祖先的分支合併
- 可以避免一些錯誤的操作
- git log 的 commit message 縮排預設用 4 個 spaces 來展開 tab
- 不知道是不是我沒讀懂或哪邊有問題,目前看起來還是8個空白的長度
- 可以透過參數來取消這功能
git log --no-expand-tabs