2017-04-27 66 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