2017-04-27 64 views
0

我一直在掙扎了一會兒想在我.gitconfig創建以下別名(顯示的第一個提交樹的歷史):無法創建git的別名第一次提交

[alias] 
    first = log $(git log --pretty=format:%H|tail -1) 

不過,我得到以下例外:

fatal: ambiguous argument '$(git': unknown revision or path not in the working tree. 
Use '--' to separate paths from revisions, like this: 
'git <command> [<revision>...] -- [<file>...]' 

我一直在嘗試幾個替代版本的命令,但無法正確地得到它。 我想在.gitconfig文件中手動創建它,而不是在終端中提供命令(即git config --global)。

有沒有人有任何想法可能會在這個錯誤? 我在UNIX /終端:-)我的寶貝步驟

編輯 我希望能有與別名運行來自終端的命令時一樣的結果。也就是,作者,SHA,日期,提交消息而不僅僅是SHA。

回答

0

其實,由於某種原因,我不得不使用單引號。感謝@ElpieKay指導我進入正確的路線。以下是我想達到的解決方案!

first = log --pretty='%C(yellow)commit %H%nDate:\t%ad%nAuthor: %an <%ae>%n%n\t%s' --max-parents=0 
2

| tail -1不是git命令,所以不能像這樣使用。嘗試:

first = "! git log --pretty=%H | tail -1" 

對於「第一次」提交,考慮合併不相關的分支,分支可能會有多個第一次提交。他們被稱爲根提交。 --max-parents=0只能列出根提交。在大多數情況下,分支只有一個根提交。嘗試在Git的方式:

first = log --pretty=%H --max-parents=0 
+0

謝謝。不幸的是,我得到了你提供的兩種解決方案的相同結果。它們都只返回指定的(第一次)提交的SHA。不過,我想要有一個描述性輸出(即日期,作者,提交信息),如下所示:gyazo.com/f30c00074bd2faa13787eaea65492c77 @ElpieKay – thodorisbais

+1

@toubou您可以添加更多佔位符(如%H)以獲取所需內容。例如作者姓名%an,提交日期%cd,提交主題%s,提交主體%b,等同於%s%b的%B。所有的佔位符都可以在'git log --help'中找到。自由組合它們來格式化輸出。你可以在其中添加額外的字符串。 '--pretty =「hash:%h author:%a subject:%s」'例如。 – ElpieKay

+1

感謝您指導我進入正確的路線!以下是我的工作,(僅供將來參考:-)) – thodorisbais