如何在shell提示符下显示gerrit change id?

时间:2018-06-02 09:29:06

标签: git zsh gerrit ps1

有没有人设法在shell提示符下获得gerrit changeid?

我正在使用zsh。

2 个答案:

答案 0 :(得分:0)

我会试着回答,而不是等待我问的回答 评论。请注意,zsh不是我的主要shell,但我使用bash 这有点类似。做你想做的事:

in_git() {
     git rev-parse  --git-dir >/dev/null 2>&1
}

precmd() {
     in_git && PS1="$(git show --format=%B  -s | grep Change-Id: | cut -d " " -f2) $ " || PS1="$ "
}

名为in_git的函数会检查您当前是否在git内 存储库 - 如果您是我们尝试从当前提取Change-Id 提交,如果你不是,我们只需显示$作为提示。

答案 1 :(得分:0)

在.zshrc文件中创建一个函数,如下所示:

get-change () { git show $1 --format=%B  -s | grep Change-Id: | cut -d " " -f2; }

然后,如果你执行" get-change"如果没有参数,您将获得HEAD提交的Change-Id:

get-change
I694a3cee135c711e2df231cb84ab6c58183a4846

或者,如果您愿意,您可以获得任何其他提交的Change-Id:

get-change master
I2cb7970b909322ff2c78a2326cf42dd2f6ae9975

get-change v1.0.0
Ia037c862c038ba78aba3724d12ba99ce298cbc55

get-change 7d09af3
I974b884a1699a798d569f0f638aa90bf531f76fe