【问题标题】:git log since yesterday for working days only从昨天开始的 git log 仅适用于工作日
【发布时间】:2011-07-01 11:12:12
【问题描述】:

对于我的每日站立会议,我喜欢输出我的提交,以便复习我的工作。

我有以下别名:

standup = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(green)<%an>%Creset' --abbrev-commit --date=relative --committer='me' --all --since='yesterday'

但是由于周末,这不适用于周一早上。

有谁知道如何在周一至周五或周二至周六等一组工作日使用git log --since

【问题讨论】:

  • --committerk 选项是什么?我的 gitlog 上有 --committer,但它不能将“我”识别为我的 user.name 的替代品
  • 这是我在上面更正的错字。

标签: git agile logging


【解决方案1】:

假设一个 POSIX-y shell,在我的例子中是 bash:

function yesterworkday() 
{ 
    if [[ "1" == "$(date +%u)" ]]
    then 
        echo "last friday"
    else
        echo "yesterday"
    fi
}

git log --since="$(yesterworkday)"

再次感谢git 的作者,他们让这一切变得异常简单接受“上周五”作为有效的日期规范

PS。要使其成为 git 别名,您需要在别名中包含 bash shell,我将在稍后使用示例进行编辑

编辑 将此逻辑直接放入 git 别名中证明是困难的(需要所有引用)。见这里的想法:.gitconfig alias function call

我完全推荐为此编写一个 shell 脚本,你可以像这样直接为 shell 脚本起别名:

standup = !$HOME/standuplog.sh

或添加到您的$PATH 文件夹之一并将其命名为git-standup

【讨论】:

  • 如果你使用%u 标志而不是%a 会更通用,它返回星期几,因此不适用于非英语用户(如我)。
  • @sehe - 不。如果您使用%u,那么1 是星期一。
  • 可以更新为使用“last friday.midnight”和“yesterday.midnight”以使其时间独立。我认为否则,它将取决于您何时运行命令。如果您在今天上午 10 点运行它,您可能看不到您在昨天上午 10 点之前所做的任何提交。
  • 这可以添加为 git 别名,如下所示:standup = !git log --since=$([[ "1" == "$(date +%u)" ]] &amp;&amp; echo last-friday || echo yesterday)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2017-08-23
  • 2018-01-20
相关资源
最近更新 更多