在 git-alias 中引用自己的用户名

Reference own username in git-alias

我想列出所有提交 'since my last commit'。

现在我使用这个日志别名变体:

[user]
    name = My Name
[alias]
    lg = !git log --since $(git log --pretty=format:'%ct' --author 'My Name' -1)

一般情况下效果很好 - 但我想实际引用我在 .gitconfig 中声明的用户名,而不是对其进行硬编码。

是否可以访问该值? (例如:$(GITCONFIG:User:Name)

以防万一:$(whoami) 不起作用,因为用户名不匹配。

您可以从 Git 配置中提取您的姓名:

me=$(git config --get user.name)

例如。一旦你把它放在一个变量中,你就可以引用这个变量。 (如果你只需要它一次你就可以嵌套 $(...) 构造,这看起来很聪明但以后可能很难调试 :-) )

因此:

[alias]
    lg = "!me=$(git config --get user.name); \
      git log --since $(git log --pretty=format:'%ct' --author \"$me\" -1)"

(此处不需要反斜杠-换行-缩进序列,但如果您愿意,可以使用它:Git 允许使用反斜杠-换行的多行别名)。注意:分号是 Git 配置文件中的注释标记,因此如果使用分号,我们需要引号。