避免在Git日志中的圣诞树 - 所有

时间:2016-06-20 15:07:57

标签: git git-log

我最近创建了一个release分支,我在其中合并了所有标记的提交。目标是将master重命名为develop,然后将master用作release分支(git-flow like)

现在,当我用git log --all显示我的完整日志时,我得到了一个非常有用的圣诞树。

* | e503add 10 days ago 
| *   a2948b1 11 days ago 
| |\
| * \   b22e247 3 weeks ago 
| |\ \
| * \ \   01f1ebc 4 weeks ago   
| |\ \ \
| * \ \ \   01336c7 4 weeks ago  
| |\ \ \ \
| * \ \ \ \   59f83a8 5 weeks ago 
| |\ \ \ \ \
| * \ \ \ \ \   25a2444 6 weeks ago  
| |\ \ \ \ \ \
| * \ \ \ \ \ \   4271ae9 6 weeks ago 
| |\ \ \ \ \ \ \
| * \ \ \ \ \ \ \   ef62400 8 weeks ago 
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \   f56aa1e 2 months ago
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \   7fdab4a 4 months ago  
| |\ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \   b25d101 4 months ago
| |\ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \   7477021 6 months ago 
| |\ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \   8b166b4 8 months ago 
| |\ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \   93be56f 9 months ago 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \   7b28785 1 year, 4 months ago 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \   4aaa409 1 year, 4 months ago
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \   4cab662 1 year, 5 months ago 
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \   996564a 1 year, 6 months ago 

一种解决方案是使用git log --date-order代替默认--topo-order。但是我无法解释为什么我会得到这样的日志。

我使用这个shell脚本创建了我的发布分支:

#!/bin/bash
set -e
git checkout -b release $first-tag
for tag in "${tags[@]}"
do
    date=$(git show -s --format="%ad" $(git log -n1 --format=%h $tag))
    export GIT_AUTHOR_DATE=$date;
    export GIT_COMMITTER_DATE=$date;
    git merge -Xtheirs -m $tag $tag
    git tag --delete $tag
    git tag -a -m $tag $tag
done         

如何在--topo-order中避免使用此圣诞树?

1 个答案:

答案 0 :(得分:1)

data: { y: 10, color: 'blue' }多头[*]表现不佳。如果你想要漂亮的图片,请尝试使用特定分支而不是--topo-order(在你的情况下为--all)。

[*]提交必须在它被合并到任何提交之后,因此如果在当前版本之后放置了一些先前的版本提交,它会强制所有分支向下,从而导致树。

我看到的重现问题的示例脚本:

release