文章目录
Git远程仓库高级操作
本节主要介绍Git远程仓库操作参数形式
上节回顾
在上一节中我们主要讲解了Git远程仓库的一些操作,包括克隆、拉取、推送等。
git clone git链接; //克隆远程仓库到本地
git fetch; //从远程仓库获取数据,此时本地中的远程分支会指向最新的提交记录,但是本地的分支不会发生改变
git pull; //从远程仓库和获取数据,并合并到本地分支,相当于git fetch和git merge两个命令
git push; //推送本地提交到远程仓库
上节具体内容请点击:【Git学习-与远程仓库通信】
本节内容
相信你也发现了,到目前为止,我们对远程仓库的操作都没加任何参数,也就是说,当前我们只是假设远程仓库只有一个分支(或者分支树较少且简单的情况),但是这显然是不现实的,对于团队协作的项目来说,肯定会存在多个分支,不管是本地还是远程仓库,所以接下来,我们给这些远程操作加上参数,从而更准确的对远程仓库进行操作。
git push的参数1
git push 《remote》《place》;//这是git push的第一种参数格式,当指定"place"这个参数的值为master时,就表示将本地仓库中的matser分支中的最新修改推送到远程仓库origin中的master分支上,也就是place这个参数指定了本地和远程仓库分支的名称,二者保持一致。
操作前:
执行:
git checkout c0; //分离特性,将当前HEAD指向c0这个提交记录
git push origin master; //切换到本地仓库中的master分支,获取所有提交,再到远程仓库origin中找到master分支,将远程仓库没有的提交记录都添加上去。
结果:
注意:这里并不需要先checkout到本地仓库的master分支上;
git push的参数2
前面给git push添加参数的时候,我们说place这个参数的值使得本地分支和远程分支的名称保持一致,即来源和去向分支的名称都是master。你可能想问,如果来源和去向分支的名称不同呢?比如想把本地的foo分支推送到远程的bar分支,怎么操作呢?
git push origin 《source》:《destination》; //看到了吗,只要用“:”将来源和目的地分开,就能实现不同的来源和目的分支啦。
操作前:
执行:
git push origin foo^:master; //将foo的父提交及往上的新的修改推送到远程的master分支上
结果:
git fetch的参数
git fetch的参数形式和git push的参数形式很像,只不过方向是相反的。
参数形式1:
git fetch origin foo; //Git会到远程仓库的foo分支上,然后获取所有到本地不存在的提交,放到本地的o/foo上。注意:这里是放到本地的o/foo分支上,而不是foo分支,因为fetch只是下载提交记录,不会更新非远程分支,有了下载好的提交记录之后,你可以对其进行检查或合并了
操作前:
执行:
git fetch origin foo;
结果:
参数形式2:
git fetch origin foo~1:bar ; //表示将远程仓库中的foo分支上的父提及及往上的新的提交记录下载到本地bar分支。注意:这种参数形式可以使得本地分支直接更新
操作前:
执行:
git fetch origin foo~1:bar;
结果:
git pull的参数
git pull的参数操作和git fetch与git push的参数操作类似,git pull到头来就是fetch后加merge操作的缩写,你可以理解为同样的参数执行git fetch,然后再merge你所抓取到的提交记录。
参数形式1:
git pull origin foo;
参数形式2:
git pull origin bar~1;bugFix;
操作前:
执行:
git pull origin master:foo; //先在本地创建一个foo分支,从远程仓库的master分支中下载提交记录,并合并到foo,然后再merge到我们当前检出的分支bar上。
结果:
没有source的source
Git有两种关于《source》的用法是比较特殊的,即你可以再git push或git fetch的时候仅保留冒号和《destination》部分,《source》部分留空。
git push origin :foo; //通过给push传空值,会删除远程仓库的foo分支
git fetch origin : bar; //拉取的时候传空值给本地bar分支,如果没有bar分支,会新建一个bar分支。
这里只演示第一个命令
操作前:
执行:
git push origin :foo;
结果:
可以看到通过这种传空值的方式,删除了远程仓库中的foo分支。
总结
在本节中,我们主要介绍了Git远程仓库的高级操作。这也是Git学习的最后一节,后面可能会加入一些通过Git来管理实际项目的例子。
学习目录:
【Git学习——基础篇】
【Git学习——高级篇1】
【Git学习——高级篇2】
【Git学习——与远程仓库通信】
版权归原作者 AIWhispers 所有, 如有侵权,请联系我们删除。