git获取远程服务器的指定分支
昨天糗大了…进入新公司,公司服务器上有Online为线上版本,开发版本默认的为Master,本地clone的开发版为master,公司用的git 自动部署(puh后服务器自动更新了代码…这个有很多配置教程,这里就不赘述啦),
本地开发分支master,一般流程是 合并到online分支后,把online push到远程分支….这个是流程OK不说了
场景是这样的:
本地master
执行 checkout -b online后
git push origin online 发现权限不够….囧事发生了,我以为是账号权限受控….特意去问cto……
好吧,我这里操作是不对滴(按照以往的部署方式不能习惯性的用在新公司..警惕吧)
git pull 操作就可以从远程库中获取某个分支的更新,再与本地指定的分支进行自动merge(即使本地不存在这个分支)
完整格式是:
$ git pull <远程库名> <远程分支名>:<本地分支名>
比如,取回远程库中的online分支,与本地的online分支进行merge,要写成:
git pull origin online:online
如果是要与本地当前分支merge,则冒号后面的<本地分支名>可以不写
git pull origin online
通常,git会将本地库分支与远程分支之间建立一种追踪关系。比如,在git clone的时候,所有本地分支默认与远程库的同名分支建立追踪关系。也就是说,本地的master分支自动追踪origin/master分支。因此,如果当前处于本地online分支上,并且本地online分支与远程的online分支有追踪关系,那么远程的分支名可以省略:
比如,取回远程库中的online分支,与本地的online分支进行merge,要写成:
git pull origin
其实,git pull 命令等同于先做了git fetch ,再做了git merge。即:
git fetch origin online
git checkout online
git merge origin/online
造成我的错误在于我本地使用checkout -b online 是创建的新onlne分支,而与服务器online根本不算是同一个分支,所以要从服务端拉取,切记吧
再次完整总结这次教训:
git 拉取远程指定分支 pull本地不存在的分支
默认,如果git项目只有一个分支,就是master,我们当然可以在本地创建多个分支,并推送到远程git管理平台上,或者将远程git管理平台上的其他分支拉取到自己电脑上。
一、查看本地已有的分支
进入到项目根目录,打开命令行/终端,输入指令,将会显示该项目的本地的全部分支,其中、当前分支的前面有*号。
git branch
二、本地检出一个新的分支并推送到远程仓库
(一).创建本地分支
git checkout -b 新分支名
执行该指令后,会在本地创建一个新分支,该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样,这是正常的。创建成功后,将自动切换至新分支上。
比如我要创建一个名为dev1的新分支:
git checkout -b dev1
此时,再执行git branch查看当前本地所有分支,就会看到多了个分支:dev1.
(二).推送本地分支到远程仓库
git push –set-upstream origin 分支名
例如,我要把上一步创建的本地dev1推送到远程仓库:
三、将远程git仓库里的指定分支拉取到本地(本地不存在的分支,今天的囧事就发生在这个环节)
当我想从远程仓库里拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/远程分支名
这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。
例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:
若成功,将会在本地创建新分支dev2,并自动切到dev2上。
如果出现提示:
fatal: Cannot update paths and switch to branch ‘dev2’ at the same time.
Did you intend to checkout ‘origin/dev2’ which can not be resolved as commit?
表示拉取不成功。上面的我需要先执行
git fetch
然后再执行
git checkout -b 本地分支名 origin/远程分支名
即可。
其实这里就是我上面描述的,不用fetch,直接 git pull origin dev2:dev2 一个命令可以达到同等效果.
提示已经是最新的了…
无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。不忘初心 方得始终!
git获取远程服务器的指定分支相关推荐
- Git获取远程分支文件并创建自己的远程分支
Git获取远程分支文件并创建自己的远程分支 1.前期准备软件:git-bash 2.获取远程分支文件过程 创建一个空的文件夹,选择文件夹,并右击,选择该选项打开命令行. 复制需要拉取的远程仓库地址. ...
- 获取远程服务器代码到本地文件,获取远程服务器代码到本地文件
获取远程服务器代码到本地文件 内容精选 换一换 远程桌面协议(Remote Desktop Protocol,RDP),是微软提供的多通道的远程登录协议.本节为您介绍如何使用RDP文件远程登录Wind ...
- git 从远程服务器更新本地项目
从远程服务器上更新别人上传的文件 1.使用git fetch更新,相当于是从远程获取最新版本到本地,不会自动merge git fetch origin master git log -p maste ...
- java获取服务器状态_获取远程服务器上 Java 进程的运行状态
为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态. 启动 jstatd 服务 在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获 ...
- java 判断进程状态_获取远程服务器上 Java 进程的运行状态
为了安全考虑, 有些服务器会被限制登录. 本文介绍如何获取远程服务器上 Java 进程的运行状态. 启动 jstatd 服务 在服务器端启动 jstatd 服务后, 远程的机器可以通过 rmi 协议获 ...
- java 获取服务器上文件,java获取远程服务器上的文件
java获取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei J ...
- ajax访问远程服务器,ajax 获取远程服务器时间
ajax 获取远程服务器时间 内容精选 换一换 云堡垒机与RADIUS服务器对接,认证登录系统的用户身份.本小节主要介绍如何配置RADIUS域认证模式,并可对配置的RADIUS认证进行用户有效性测试. ...
- git访问远程服务器文件,git访问远程服务器文件
git访问远程服务器文件 内容精选 换一换 当您的裸金属服务器无法SSH登录时,我们首先建议您通过控制台远程登录.SSH登录失败时,请首先尝试能否通过管理控制台远程登录裸金属服务器.登录管理控制台.选 ...
- java怎么获取服务器文件夹,java获取远程服务器的文件夹
java获取远程服务器的文件夹 内容精选 换一换 工具中所有涉及上传文件功能的,如果需要上传的文件大于1GB或者解压后超过剩余磁盘空间的一半,则需要释放磁盘空间或手动将文件上传至服务器,其他情况可通过 ...
最新文章
- .net安装_无需安装Python,就可以在.NET里调用Python库
- LeetCode-Unique Binary Search Trees
- 【redis】redis持久化
- Spring Cloud Feign - 内部实现细节
- Java修炼之路——基础篇——平台无关性
- 什么时候需要使用cqrs_在CQRS读取模型中使用Hibernate进行快速开发
- 无法打开虚拟机“Ubuntu2” (D:\software\Ubuntu2.vmx): 未找到文件。 是否从库中移除“Ubuntu2”?
- 【原创】Erlang 之 entop 使用问题
- perl多进程实战之一
- c#正则表达式应用实例
- 计算机一级在线练习,计算机一级练习系统
- Activity及Dialog的全透明
- 腾讯云大学实验室(153个学习案例)免费学服务器技术
- 用C++实现QQ自动登陆器,仿佛开了外挂,秒杀各种神操作!
- STM32CUBEMX 配置12脚3641BS以及串口显示RTC时间
- 【架构师】零基础到精通——网关详解
- 一篇6450字的广告,如何开启1.8万亿美金的华尔街传奇?
- 瑞利信道下基于判决反馈的16QAM信道均衡(matlab源码)
- 入门级数码单反实用指南 如何拍摄建筑
- 实战Memcached缓存系统