Git官方在2月24日釋出了Git 2.21,為時間戳記增加了人類可讀的日期格式,在不同情況Git會輸出不同格式的日期,而GitHub官方部落格除了解釋Git 2.21更新變化外,還順帶一併說明了前一版本Git 2.20更新帶來的影響。

在Git 2.21中,開發者現在可以使用「—date=human」選項,讓Git輸出人類可讀的日期格式。Git日誌會顯示每個提交的創建日期,以作為輸出的一部分,當開發者沒有調整,則時間戳記將會以Tue Feb 12 09:00:33 2019 -0800這樣的—date=default預設格式顯示。

Github平臺工程師Taylor Blau提到,雖然這樣的格式很精確詳細,但是隨著時間經過,細節便會變得不太重要,開發者可能只關心相對時間。因此Git也提供了—date=relative這樣的選項,系統可以顯示6天前這樣的相對時間格式,但是相對時間格式提供的資訊,在部分情況又不夠精準,所以現在官方進一步綜合了兩種格式,提供—date=human選項,這種格式比—date=relative更精確,但又比—date=default更容易閱讀,會依照不同規則顯示三分鐘前、2月14日星期四 20:46,或是2011年2月21日等不同格式的時間。

而—date=human還能設定為自動模式—date=auto:human,這樣的設計是為了考量使用者在撰寫腳本的時候,需要在人類與機器可讀時間格式間互相切換,因此當要輸出到分頁器的時候,時間會以—date=human格式輸出,而在非分頁器輸出時,則會以預設格式顯示。使用者也可以在不同的時間格式使用auto屬性,像是—date=auto:relative,在不同的時間格式與預設格式中切換。

另外,Taylor Blau也順帶提到了前一個版本Git 2.20,改善了常見的大小寫不分路徑衝突的問題。過去開發者在複製(Clone)儲存庫後,開發者會常獲得部分檔案已經被修改的Git狀態通知,並且出現錯誤。Taylor Blau表示,會導致這樣錯誤,原因通常是因為儲存庫中包含了無法在檔案系統中顯示的樹,像是在路徑中同時存在file以及FILE字詞,但是使用者系統中的檔案系統不區分大小寫,因此Git可能無法正確的將檔案放入工作目錄中,而且因為Git不會在複製期間偵測大小寫,因此可能也會發生把多個檔案當作同一個檔案的情況。

由於發生這種情況因系統而異,Taylor Blau提到,除了英文字大小寫轉換外,特定語言、非列印字元或是Unicode正規化也都有相同的現象發生。在Git 2.20中,Git複製已經可以在初始將檔案放入工作目錄的階段,進行偵測並回報衝突,不過,Git系統並無法幫助開發者解決問題,只能發出警告,因此Taylor Blau建議,不要在多平臺專案中使用僅有大小寫不同的檔案名稱。


Advertisement

更多 iThome相關內容