Dor*_*ian 7 git branching-and-merging
我想检查远程Git存储库上的分支是否包含具有特定名称的合并分支.例如:
www.example.com:/repo.git.myBranch.myFeatureBranch已合并特定功能分支myBranch.如果我克隆了存储库并结账myBranch,我可以这样做git show-ref --verify refs/heads/myFeatureBranch,但这不是我想要做的.我必须在没有克隆的情况下使用远程分支.
我已经玩过git ls-remote --heads www.example.com:/repo.git,但我唯一得到的是远程头部列表.以前有人这样做过吗?
Git 的分布式特性从根本上来说是围绕几个基本概念设计的:
这意味着探索历史记录是本地操作,无法在远程存储库上执行。
git -ls-remote命令对于在上游搜索引用很有用,但对于历史记录却没有用。例如:
git ls-remote origin | egrep 'some_branch_name|merge'
Run Code Online (Sandbox Code Playgroud)
将在远程上打印与您要查找的命名分支匹配的引用,或者(在 GitHub 的情况下)从合并的拉取请求创建的引用,例如:
381a77fd72ea594cfce5c82c845ad3d10bb87d71 refs/pull/99/merge
Run Code Online (Sandbox Code Playgroud)
git -ls-remote命令显示远程存储库中可用的引用以及关联的提交 ID。但是,如果您想找出哪个分支包含给定的提交,则需要访问完整的历史记录;这需要你有一个本地副本。
我知道处理这个问题的最好方法如下:
git fetch --all origin。git log --merges。git branch --all --contains <commit>。这将为您提供包含指定提交的分支列表。