如何获取当地git
当前提交已分支的远程git
分支的名称?
我认为这是一个4步骤的过程,前三个步骤可能如下:
git rev-parse --abbrev-ref HEAD
git rev-parse HEAD # full hash
git rev-parse --abbrev-ref @{upstream}
执行此操作需要哪些特定代码?在阅读了@ChrisJohnsen对this other posting的回答后,我想这个解决方案涉及查找从远程存储库中的另一个分支派生的最新提交。但是,链接发布的答案中的代码似乎都是为本地存储库设计的。 这个当前的问题是不同的,因为我问如何从本地存储库子分支中找到远程存储库父分支。
我正在添加bash
标记,因为这些命令在可以使用bash
脚本的CentOS服务器上运行。
答案 0 :(得分:1)
但是,链接发布的答案中的代码似乎都是为本地存储库设计的。
仍然,您可以应用that code并检查结果(最近的祖先分支)is a remote branch(在初始git fetch之后)或者是否。 如果没有,请检查该本地父分支的父分支。
答案 1 :(得分:1)
要通过查看所有分支结构来获取远程父分支,您可以通过以下任何命令将提交历史记录打印为图形:
gitk --all
git log --oneline --decorate --graph --all
要仅通过脚本获取本地分支的远程父分支,可以基于远程分支创建本地临时分支。然后,您可以从临时分支中找到本地分支的父分支。找到临时分支是本地分支的父分支后,可以相应地获取远程分支。最后,删除所有临时分支。详细步骤如下:
按git branch -r
列出所有远程分支(假设远程分支为origin/master
,origin/dev
和origin/feature
。)
从本地分支机构获取跟踪/远程分支
当您使用commmand git rev-parse --abbrev-ref @{upstream}
时,获取给定本地分支的远程分支的方法(假设它是origin/master
分支,您希望找到它的父分支。)
分别从远程分支创建本地临时分支
git branch -b origin-master origin/master #Create a local branch origin-master from origin/master
git branch -b origin-dev origin/dev
git branach -b origin-feature origin/feature
从临时分支
中查找父分支现在您只需要从所有临时分支(origin-master
,origin-master
和o origin-dev
)中找到rigin-feature
分支的父分支。它转换为与帖子(Find the parent branch of a Git branch)显示的情况相同。并且您可以使用相同的方式来实现。
将父分支转换为相应的远程分支
例如,您发现origin-master
分支的父分支是origin-dev
,然后将-
替换为/
以获取远程父分支名称origin/dev
。
删除所有临时分支
git branch -D origin-master
git branch -D origin-dev
git branch -D origin-feature