我正在寻找一个包含以下内容的列表:
对于所有分支机构来说,开发'随着'发布'在名称中。
类似于
2014-03-11 10:52:04 +0100 9 months ago release-1.0
2014-03-28 10:33:23 +0100 8 months ago release-2.0
2014-04-02 10:40:59 +0200 8 months ago release-3.0
2014-04-18 17:01:54 +0200 8 months ago release-3.0.1
2014-05-05 15:25:31 +0200 7 months ago release-3.0.2
我找到了几个真正帮助我的答案,现在我在语法上磕磕绊绊。有用的信息是:
到目前为止,我将以下内容作为bash中的别名
for k in `git branch|sed s/^..//`;
do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset"
<(`diff -u <(git rev-list --first-parent "$k") <(git rev-list --first-parent develop)|sed -ne '"'"'s/^ //p'"'"'|head -1`)
--`\\t"$k";
done|sort;'
单独运行此部分工作。但并非完全如此。
所以这些工作:
git branch|sed s/^..//
git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset" release-3.0
diff -u <(git rev-list --first-parent release-3.0) <(git rev-list --first-parent develop)
但不是当我把它们放在一起时。
帮助?
答案 0 :(得分:2)
你不能像这样嵌套反引号命令:
echo `echo foo `echo bar` baz`
要进行嵌套,您需要使用(所有更优选的)$()
语法。
你也不需要反叛
≤(...
)
除非您希望替换从...
命令而不是...
命令本身运行输出。
所以尝试更像这样的东西:
for k in $(git branch|sed s/^..//);
do echo -e $(git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset"
<(`diff -u <(git rev-list --first-parent "$k") <(git rev-list --first-parent develop)|sed -ne '"'"'s/^ //p'"'"'|head -1`)
--)\\t"$k";
done|sort;'
或没有<()
反对
for k in $(git branch|sed s/^..//);
do echo -e $(git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset"
<(diff -u <(git rev-list --first-parent "$k") <(git rev-list --first-parent develop)|sed -ne '"'"'s/^ //p'"'"'|head -1)
--)\\t"$k";
done|sort;'
此外,我认为您根本不需要使用echo -e
,因为您可以直接将\t$k
放在git log
格式字符串中。
for k in $(git branch|sed s/^..//); do
git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset"$'\t'"$k"
<(diff -u <(git rev-list --first-parent "$k") <(git rev-list --first-parent develop)|sed -ne '"'"'s/^ //p'"'"'|head -1)
--;
done|sort;'
其中,假设我做得很好,看起来它试图将git log
修订版本提供给标准输入日志,但我不相信git log
以这种方式输入。所以你需要把它变成一个参数。
for k in $(git branch|sed s/^..//); do
git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr %Creset"$'\t'"$k"
"$(diff -u <(git rev-list --first-parent "$k") <(git rev-list --first-parent develop)|sed -ne '"'"'s/^ //p'"'"'|head -1)"
--;
done|sort;'
你也可以摆脱悬挂--
。