作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前我在一个功能分支中,但我不知道它是从我的开发分支还是发布分支创建的。
谁能告诉我如何从当前的 git 分支获取父分支名称。
最佳答案
鉴于 Git 使用有向无环图并且通常一个 repo 只有一个根,因此您的所有分支都指向一个初始提交。因此,您真正想要的是与您的分支共享最大历史的分支。
您不能只查找其 HEAD 包含在当前分支历史记录中的分支,因为此分支 HEAD 很可能从那时起已经移动。
所以我建议你使用 git merge-base
,它可以找到两个分支或提交的最新共同祖先(也称为 fork 点):
$ git merge-base feature develop
12345abc
$ git merge-base feature release
98765fed
这将分别输出出现在两个分支的历史记录中的两个提交。两者之一将包含在 both 分支中,因此您可以将它们再次提供给 merge-base
以获得您想要的提交(或者更确切地说,您 不想要):
git merge-base 12345abc 98765fed
98765fed
所以在我们的示例中,feature
派生自 develop
,因为两者共享 release
没有的提交。
请注意,这仅在您不在功能和开发之间进行交叉 merge 时才有效。
关于git - 如何从当前分支获取git父分支名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38495989/
我是一名优秀的程序员,十分优秀!