我創建了一個簡單的單行批處理文件,以我的首選格式運行git日誌。當我在PowerShell中時,我輸入:Git命令行和批處理文件有不同的輸出
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
它給了我完全我想要的輸出。它是ISO格式的提交作者的日期和時間,後跟一個製表符,後面是完整的SHA哈希表,後面是選項卡,後面是註釋/說明。它完全按照我想要的方式在Excel中打開。
我試圖做一個簡單的批處理文件來做同樣的事情,所以我不必記住格式字符串或搜索命令歷史記錄(無論如何,它有時會被清除)。我注意到我必須使用雙重百分比,%%替換所有百分號。
在批處理文件的一個版本我有這樣一行:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" > commitlog.csv
其中我注意到回聲像這樣的命令:
git log --pretty=format:"%ai%x09%H%x09%s" 1>commitlog.csv
其中有一個「1」突然插入到它的一些原因,但奇怪地創建了一個包含這些信息的文件,只是排除了標籤,所以它們一起運行。我讀了大於「>」需要由克拉來之前,像這樣「^>」
因此,在批處理文件的下一個版本,我改了行這樣:
git log --pretty=format:"%%ai%%x09%%H%%x09%%s" ^> commitlog.csv
其中回聲像這樣的命令:
git log --pretty=format:"%ai%x09%H%x09%s" > commitlog.csv
我已經盯着看很長一段時間,很多次,似乎正是我在PowerShell中鍵入,我會期望得到同樣的結果,但相反,我收到一條錯誤消息:
fatal: ambiguous argument '>': unknown revision or path not in the
working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我在做什麼錯?
我的Windows程序沒有與換行符有關的問題,一切都在它本應該是的行上。無論如何,我嘗試了你的建議,但添加%% x0D並沒有改變我的輸出結果。出於某種奇怪的原因,當我運行批處理文件時,實際上並沒有添加TABS(%% x09),每一行中的數據只是一起運行。 – Trashman 2015-04-02 13:00:16
而.tsv不是Excel識別的文件類型,所以我不使用它。它可以解析csv文件,而不管使用什麼實際的分隔符。 – Trashman 2015-04-02 13:02:39