Git 如何找到提交来自的合并分支?
我正在查找提交的原始分支。不是包含此提交的所有分支,而是合并到包含此提交的主节点中的分支 我看到了一些Git 如何找到提交来自的合并分支?,git,Git,我正在查找提交的原始分支。不是包含此提交的所有分支,而是合并到包含此提交的主节点中的分支 我看到了一些 git rev list | grep&git branch——包含,但没有直接的内容 我的目标是,如果有一个commit1140bdf通过分支ta1234_foo进入master,那么以后我可以断言,即使在master被合并回其他分支之后 我们正在使用Github,因此如果这是解决方案的一部分,那么命令行就更好了。这将显示首次合并提交的合并历史: merges-introducing() {
git rev list | grep
&git branch——包含
,但没有直接的内容
我的目标是,如果有一个commit1140bdf
通过分支ta1234_foo
进入master
,那么以后我可以断言,即使在master被合并回其他分支之后
我们正在使用Github,因此如果这是解决方案的一部分,那么命令行就更好了。这将显示首次合并提交的合并历史:
merges-introducing() {
local introducing;
if introducing=`git rev-parse $1`; then
shift
git rev-list --ancestry-path --parents --reverse ^$introducing ${@-HEAD} \
| awk '{seen[$1]=1} NR>1 && !seen[$2] {print $1}' \
| xargs git show --oneline --no-patch
fi
}
所以对于你的情况,你会这么做
merges-introducing 1140bdf master
查看将1140bdf
引入当前主分支的新分支的合并顺序
这个想法很简单:
--祖先路径--reverse
可以读作“下降路径到”,我们在该路径上看到的任何提交,如果不是通过其第一个父级从感兴趣的提交派生而来,则只能是首次将感兴趣的提交合并到分支中 你好@jthill。这行看起来不错,但当我运行它时,它似乎显示了所有主合并。需要一个特定的git版本吗?你是对的——它没有消除所有无趣的合并。我认为它现在只打印了一些有趣的部分。稍微修改一下,这似乎对我有用:用$introduction…$2
替换^$introduction${-HEAD}
有什么帮助?我看不出你在追求什么效果。如果我使用你的脚本,它总是说:fatal:master:在工作树中没有这样的路径。使用“git--…”指定本地不存在的路径。