我不知道从哪里开始,所以我还没有尝试过任何东西。基本上我想让所有标签(版本号)从最新到最旧排序,并生成一个特定目录中从一个标签到下一个标签的添加文件列表。这些文件本身就是小的降价代码片段,我想把它们全部放在一个文件中,每个标签都有一个标题。
答案 0 :(得分:2)
git tag
列出了所有标签,但未列入"版本顺序&#34 ;;你必须做你的"版本号排序"另一种方式。这可以是任意的困难,因为营销和销售人员喜欢确保没有人能够理解哪个版本是哪个,以便迫使客户购买更多版本。 : - )
假设您有一个列表,您可以逐步完成,例如:
versions="v0.01 v0.02 v1 v1.1alpha v1.1 v1.1a v3 \
vmarketing-name vdifferent-name \
v2.1-because-marketing-thinks-2-greater-than-3"
然后你可以做这样的事情(在sh / bash中):
set -- $versions
prev=$1
shift
for tag in $versions; do
echo "$prev => $tag"
git diff $prev $tag --diff-filter=A --name-only -- this/dir
echo "----------------------------------"
done
这是如何运作的:
git diff
为您提供从一次提交到另一次提交的更改。$prev
和"此标记" $tag
git diff
仅查看路径this/dir
git diff
过滤除A
dded-files git diff
仅打印文件名(然后,如果变化很大或为空,则echo会添加一条切割线。)