git命令行学习五——git远程高级操作二

6 篇文章 0 订阅
6 篇文章 0 订阅

Git Push 的参数

1.目标分支和来源分支一致
语法

git push <remote> <place>//remote:远程仓库名,如origin,place:远程仓库中的分支名称
git push origin master;//将本地仓库中master的提交添加到远程仓库中master分支上(提交前先pull一下)

执行前
在这里插入图片描述

git checkout C0;
git push origin master;

执行后
在这里插入图片描述
push后面不添加参数
执行前后
在这里插入图片描述

git checkout C0;
git push;
//因为当前检出的是HEAD(在C0),没有跟踪任何远程分支,所以没有效果

例子练习
在这里插入图片描述

git push origin master;
git push origin foo;

2.目标分支和来源分支不一致
语法

git push <remote> <source>:<destination> //remote:远程仓库名,source:本地分支(来源分支),destination:远程仓库中对应的分支(目标分支)
//source 可以是任何 Git 能识别的位置

执行前
在这里插入图片描述

git push origin foo^:master//foo^:C2

执行后
在这里插入图片描述
如果远程仓库中的目标分支不存在,会自动创建对应的分支

执行前
在这里插入图片描述

git push origin master:newBranch//远程仓库中没有newBranch分支,会自动创建

执行后
在这里插入图片描述
例子练习
在这里插入图片描述

git push origin master^:foo;
git push origin foo:master

Git fetch 的参数

方式一

git fetch <remote> <branch>//remote:远程仓库名,branch:本地的远程分支与远程仓库对应的分支
git fetch origin master//将远程仓库中master分支的所有提交都下载到远程分支o/master(不是本地master分支)

执行前
在这里插入图片描述

git fetch origin foo;
//并没有更新本地的foo,因为没有进行合并

执行后
在这里插入图片描述
方式二

//source:远程仓库中的分支名,destination:是本地仓库的本地分支(不是本地的远程分支)
git fetch <remote> <source>:<destination>

执行前
在这里插入图片描述

git fetch origin foo^:bar

执行后
在这里插入图片描述
如果本地的目标分支不存在,也会自动创建

执行前
在这里插入图片描述

git fetch origin foo~1:bar//本地不存在bar分支。自动创建

执行后
在这里插入图片描述
如果git fetch后面没有参数,就会下载所有的提交记录到本地仓库中的各个远程分支(只会更新远程分支,不会更新对应的本地分支)

例子练习
在这里插入图片描述

git fetch origin foo:master;//将远程仓库中的foo分支下载到本地的master分支
git fetch origin master^:foo;//将C3下载到本地的master分支
git checkout foo;//切换到foo分支
git merge master;//将master分支合并到foo分支

奇异操作

git push/fetch <remote> <source省略不写>:<destination>;
git push origin :develop;
git fetch origin :develop;

执行前
在这里插入图片描述

git push origin :foo;//提交空的本地分支到远程仓库,会删除掉对应分支

执行后
在这里插入图片描述
执行前
在这里插入图片描述

git fetch origin :bar//下载空的分支到本地的bar分支,本地不存在bar分支,会新创建一个bar分支

执行后
在这里插入图片描述
例子练习
在这里插入图片描述

git push origin :foo;//删除远程仓库中的foo分支
git fetch origin :bar;//在本地仓库创建一个bar分支

Git pull 参数

git pull 是 fetch 后跟 merge 的缩写。git pull用同样的参数执行 git fetch,然后再 merge合并 抓取到的提交记录。

git pull origin foo;//git fetch origin foo; git merge o/foo;

git pull origin bar~1:bugFix;//git fetch origin bar~1:bugFix; git merge bugFix

执行前
在这里插入图片描述

git pull origin master;//通过指定了master,来更新远程分支o/master,然后再将o/master merge合并到当前的检出位置,无论我们当前检出的位置是哪(不是本地master分支也行)

执行后
在这里插入图片描述

执行前
在这里插入图片描述

git pull origin master:foo//会先创建分支,   然后再将远程仓库的master分支提交记录下载到本地的foo分支,最后再merge到当前检出的分支(bar)       

执行后
在这里插入图片描述
例子练习
在这里插入图片描述

git pull origin bar:foo;//本地创建foo分支,将远程仓库中bar的提交记录下载到foo分支,然后再合并到当前检出的master分支上
git pull origin master:side;//本地创建side分支,将远程擦仓库中的master分支的提交记录下载到side分支,再合并到master分支 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值