Git 使用bash创建所有提交的列表,从中创建分支
我正在寻找包含以下内容的列表:Git 使用bash创建所有提交的列表,从中创建分支,git,bash,sed,diff,Git,Bash,Sed,Diff,我正在寻找包含以下内容的列表: 日期 分支机构名称 对于名称中带有“发布”的“开发”分支机构 近似 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 re
- 日期
- 分支机构名称
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
我已经找到了几个真正对我有帮助的答案,现在我在语法上结结巴巴。有用的信息包括:
- (请注意,我正在查找进行分支的提交)
- 在另一个岗位上
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/^../`中k的;
do echo-e`git log-1--pretty=格式:“%Cgreen%ci%Cblue%cr%Creset”
不能像这样嵌套backtick命令:
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;'
要嵌套,您需要使用(更可取的是)语法$()
您也不需要在
不能像这样嵌套backtick命令<代码>`echo foo`echo bar`baz`
。要嵌套,您需要使用$()
语法。但是,您为什么要在这里使用echo-e
?你能不能把\t$k
放在git日志格式字符串中?不要用别名来表示这么复杂的东西;使用shell函数。@EtanReisner我想是这样的!我没有使用\t$k,因为我只是不知道如何有效地执行此操作。我对刚才的effective很满意。@chepner既然我知道如何使用别名,我可能会把它变成一个函数。谢谢。@TomFenech老实说,我不知道那是什么。OP中的代码片段不完整(它至少去掉了别名前缀),引用问题让我感到困惑。我可以试一下。我提到它的原因是我正在考虑做一个结合使用$()
和我自己的函数的答案,但也有点困惑!
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
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;'
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;'