Cod*_*Med 5 git bash version-control github
如何获取git本地git当前提交已分支的远程分支的名称?
我假设这是一个4步骤,前三个步骤可能如下:
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
git rev-parse HEAD # full hash
Run Code Online (Sandbox Code Playgroud)
git rev-parse --abbrev-ref @{upstream}
Run Code Online (Sandbox Code Playgroud)
这样做需要什么具体代码?在阅读了@ ChrisJohnsen对其他帖子的回答之后,我想这个解决方案涉及查找从远程存储库中的另一个分支派生的最新提交.但是,链接发布的答案中的代码似乎都是为本地存储库设计的. 这个当前的问题是不同的,因为我问如何从本地存储库子分支中找到远程存储库父分支.
我正在添加bash标签,因为这些命令在可以使用bash脚本的CentOS服务器上运行.
通过查看所有分支结构来获取远程父分支,您可以通过以下任何命令将提交历史记录打印为图表:
\n\ngitk --all\ngit log --oneline --decorate --graph --all\nRun Code Online (Sandbox Code Playgroud)\n\n通过脚本仅获取本地分支的远程父分支,您可以根据远程分支创建本地临时分支。然后就可以从临时分支中找到本地分支的父分支。找到temp分支是本地分支的父分支后,就可以对应获取远程分支了。最后,删除所有临时分支。详细步骤如下:
\n\n列出所有远程分支git branch -r(假设远程分支是origin/master,origin/dev并且origin/feature)。
从本地分支获取跟踪/远程分支
\n\n使用命令获取给定本地分支的远程分支的方法git rev-parse --abbrev-ref @{upstream}(假设\xe2\x80\x99sorigin/master父分支的 it\xe2\x80\x99s 分支)。
分别从远程分支创建本地临时分支
\n\ngit branch -b origin-master origin/master #Create a local branch origin-master from origin/master\ngit branch -b origin-dev origin/dev\ngit branach -b origin-feature origin/feature\nRun Code Online (Sandbox Code Playgroud)从临时分支中查找父分支
\n\n现在您只需要从origin-master所有临时分支( 和 o )中找到branch\xe2\x80\x99sorigin-master父origin-dev分支rigin-feature。它转换为与帖子(查找 Git 分支的父分支)所示的情况相同的情况。并且可以用同样的方式来实现。
将父分支转换为对应的远程分支
\n\n比如你找到origin-masterbranch的父分支是origin-dev,然后替换-to/即可得到远程父分支名称origin/dev。
删除所有临时分支
\n\ngit branch -D origin-master\ngit branch -D origin-dev\ngit branch -D origin-feature\nRun Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3466 次 |
| 最近记录: |