gpt4 book ai didi

git - 如何确定 rebase 的分支父级

转载 作者:太空狗 更新时间:2023-10-29 13:21:30 25 4
gpt4 key购买 nike

是的,这看起来与“Find the parent branch of a git branch”非常相似,但我没有在那里找到我的答案。

认为我想知道如何找到我当前的父分支,但我可能问错了问题。所以我将提供我的场景。

  1. 我们的组织有几个长期运行的发布分支,它们没有重命名(但最终在发布后被弃用)

  2. 有时,我会从其中一个发布分支创建一个功能分支来解决某个问题。这是一个本地功能分支。

  3. 我被叫去处理其他项目、其他版本等。

  4. 我回到这个功能,现在我想将它 rebase 到它最初分支的最新提交。但是时间已经过去了,我不记得这是从版本 x 还是版本 y 分支出来的

那我该怎么做呢?在我看来,我想我会弄清楚我从哪个发布分支创建我的功能,然后 rebase 到该分支上的最后一次提交。

我知道还有其他组织技术可以避免这个问题,例如总是在我的功能分支中包含基本分支的名称。但那艘船已经起航了。

是否有 git 解决方案来解决我面临的挑战?

最佳答案

这应该为你做:

git log --oneline \
| cut -f 1 -d' ' \
| (while read commit ; do
other_branches="$(git branch --contains $commit | egrep -v '^\* ')"
if [ -n "${other_branches}" ] ; then
echo -e "${commit} is in:\n${other_branches}"
break
fi
done)

这将遍历该分支的提交日志,并且对于每个提交,检查哪些分支包含该提交(是该提交的后代)。一旦它发现一个提交的后代不是当前分支,它就会打印提交哈希、包含该提交的其他分支,然后跳出循环。

关于git - 如何确定 rebase 的分支父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40265868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com