加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 找到LOCAL git分支的REMOTE父分支

发布时间:2020-12-15 22:39:52 所属栏目:安全 来源:网络整理
导读:如何获取本地git当前提交已分支的远程git分支的名称? 我假设这是一个4步骤,前三个步骤可能如下: 第一步:获取本地git仓库中当前分支的名称: git rev-parse --abbrev-ref HEAD 第二步:从本地仓库获取当前检出的提交的哈希值: git rev-parse HEAD # full
如何获取本地git当前提交已分支的远程git分支的名称?

我假设这是一个4步骤,前三个步骤可能如下:

第一步:获取本地git仓库中当前分支的名称:

git rev-parse --abbrev-ref HEAD

第二步:从本地仓库获取当前检出的提交的哈希值:

git rev-parse HEAD          # full hash

第三步:获取远程git仓库上游跟踪分支的名称:

git rev-parse --abbrev-ref @{upstream}

第四步:获取远程git仓库上的父上游跟踪分支的名称:

这样做需要什么具体代码?在阅读@ ChrisJohnsen对this other posting的回答之后,我想这个解决方案涉及查找从远程存储库中的另一个分支派生的最新提交.但是,链接发布的答案中的代码似乎都是为本地存储库设计的.这个当前的问题是不同的,因为我问如何从本地存储库子分支中找到远程存储库父分支.

我正在添加bash标记,因为这些命令在可以使用bash脚本的CentOS服务器上运行.

解决方法

要通过查看所有分支结构来获取远程父分支,可以通过以下任何命令将提交历史记录打印为图形:

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-dev和origin-feature)中找到origin-master分支的父分支.它转换为与帖子(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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读