假设我们遵循的是gitflow分支模型,其中的功能分支是从集成分支创建的。
检查集成分支是否已创建某个分支的可靠方法是什么?
相对于母版分支还是其他分支?
我不确定该怎么做。
答案 0 :(得分:1)
假设您知道所有集成和发行分支的名称,则可以找到所有合并库并按时间戳进行比较(或排序)。
例如,如果主分支分别命名为master
和develop
,则可以在要素分支和每个主分支之间找到合并基础:
branch_name="feature/feature-1"
is_feature_branch=false
git checkout $branch_name
mb_develop=$( git merge-base HEAD develop )
mb_master=$( git merge-base HEAD master)
ts_develop=$( git show -s --format=%ct $mb_develop)
ts_master=$( git show -s --format=%ct $mb_master)
if (( $ts_develop > $ts_master ))
then
is_feature_branch=true
fi
诚然,如果还有更多主要分支( eg develop,master,release / 1.0,release / 1.1等),或者您不知道每个分支的名称,则此方法可能会出现问题。存储库中的主分支。
答案 1 :(得分:0)
尽管找到“分支父母”并不总是那么容易,但在大多数情况下还是可以的。
因此,一种方法是应用“ Find the parent branch of a Git branch”的配方之一。
git show-branch -a \
| grep '\*' \
| grep -v `git rev-parse --abbrev-ref HEAD` \
| head -n1 \
| sed 's/.*\[\(.*\)\].*/\1/' \
| sed 's/[\^~].*//'