Git:远程分支----git pull和git push命令用法介绍
文章目录
- 一、git pull
- 1.1 git pull命令的完整格式
- 1.2 省略本地分支名
- 1.3 当前分支与远程分支存在追踪关系(可能有多个追踪关系)
- 1.4 当前分支只有一个追踪关系
- 1.5 拉取远程主机上被他人rebase操作然后强制推送的分支
- 1.6 在本地删除远程主机上已删除的对应分支
- 二、git push
- 2.1 git push命令的完整格式:
- 2.2 省略远程分支名
- 2.3 省略本地分支名
- 2.4 当前分支与远程分支存在追踪关系(可能有多个追踪关系)
- 2.5 当前分支与远程分支只有一个追踪关系
- 2.6 建立追踪关系并指定默认远程主机
- 2.7 推送所有分支
- 2.8 用本地所有分支覆盖远程所有分支
- 2.9 附(对标签tag的推送)
本篇博客涉及本地分支和远程分支的追踪关系,关于追踪关系的建立可参考我的另一篇博客: https://blog.csdn.net/qq_42780289/article/details/97762596
一、git pull
1.1 git pull命令的完整格式
$ git pull <远程主机名> <远程分支名>:<本地分支名>
作用是取回远程主机的指定分支,再与本地的指定分支合并。
1.2 省略本地分支名
$ git pull <远程主机名> <分支名>
当只有一个分支名时,这个分支名默认是远程分支名。作用是取回远程主机的指定分支,再与本地的当前分支合并。
例如:$ git pull origin dev ,假设本地的当前分支是master。
结果:取回远程主机 origin 的 dev 分支与本地的当前分支,即与 master 分支合并。
1.3 当前分支与远程分支存在追踪关系(可能有多个追踪关系)
$ git pull <远程主机名>
取回远程主机与当前分支有追踪关系的分支,再与本地的当前分支合并。如果没有追踪关系使用该命令则会报错。
1.4 当前分支只有一个追踪关系
$ git pull
取回远程与当前分支有唯一追踪关系的分支,再与本地的当前分支合并。如果没有追踪关系使用该命令则会报错。
1.5 拉取远程主机上被他人rebase操作然后强制推送的分支
$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
有人推送了经过rebase操作的提交,并丢弃了你的本地开发所基于的一些提交,但是你push之后,那些被对方丢弃的提交又出现了,这是对方所不希望看到的。所以在拉取合并时加上 --rebase 选项,git内部会自动检测,合并的结果会丢弃一些提交,符合预期。
1.6 在本地删除远程主机上已删除的对应分支
$ git pull -p
如果在远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。如果要删除,加上 -p 选项即可。
二、git push
2.1 git push命令的完整格式:
$ git push <远程主机名> <本地分支名>:<远程分支名>
作用是将本地的指定分支推送到远程主机的指定分支上。
注意:git pull是<远程分支名>:<本地分支名>,而git push是<本地分支名>:<远程分支名>。
2.2 省略远程分支名
$ git push <远程主机名> <分支名>
当只有一个分支名时,这个分支名默认是本地分支名。作用是将本地的指定分支推送到远程主机的同名分支上。注意如果远程主机不存在该同名分支,则会自动新建同名分支。
例如:$ git push origin dev ,假设本地的当前分支是master。
结果:将本地的 dev 分支推送到远程主机 origin 的 dev 分支上,和本地的当前分支是 master 没有关系。
2.3 省略本地分支名
$ git push <远程主机名> :<远程分支名>
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支
在Git v1.7.0 之后,还可以使用下面这种语法删除远程分支:
$ git push <远程主机名> --delete <远程分支名>
2.4 当前分支与远程分支存在追踪关系(可能有多个追踪关系)
$ git push <远程主机名>
作用是将本地的当前分支推送到远程主机有追踪关系的对应分支上。如果没有追踪关系使用该命令则会报错。
2.5 当前分支与远程分支只有一个追踪关系
$ git push
作用是将本地的当前分支推送到远程有唯一追踪关系的对应分支上。如果没有追踪关系使用该命令则会报错。
2.6 建立追踪关系并指定默认远程主机
$ git push -u <远程主机名> <本地分支名>
作用是将本地的指定分支推送到远程主机的同名分支。另外因为加了-u参数,所以如果没有追踪关系则会建立,另外如果当前指定分支与多个远程主机存在追踪关系,则指定该远程主机为默认主机,后面就可以不加参数使用git push。
2.7 推送所有分支
$ git push --all <远程主机名>
不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项。如果远程主机的版本比本地版本更加新,推送时Git会报错,要求先在本地做git pull合并差异或解决冲突,然后再推送到远程主机。但是如果你一定要推送,可以使用下面的–force选项。
2.8 用本地所有分支覆盖远程所有分支
$ git push --force <远程主机名>
使用–force选项,结果导致远程主机上的版本直接被覆盖。除非你很确定要这样做,否则应该尽量避免使用–force选项。
2.9 附(对标签tag的推送)
推送一个本地标签到远程:
$ git push <远程主机名> <本地标签名>
推送本地全部未推送过的标签到远程:
$ git push <远程主机名> --tags
删除一个远程标签(即推送一个空的标签到远程标签):
$ git push <远程主机名> :refs/tags/<远程标签名>
在Git v1.7.0 之后,还可以使用下面这种语法删除远程标签:
$ git push <远程主机名> --delete tag <远程标签名>
参考文章:
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
https://blog.zengrong.net/post/1746.html
Git:远程分支----git pull和git push命令用法介绍相关推荐
- Git 远程分支的pull与push
远程分支信息查看 git branch -r #查看远程分支git branch -a #查看所有分支,本地和远程git remote show [remote-name] #查看远程仓库信息 其中g ...
- git 新建分支并推送(push)到远程仓库
git 新建分支并推送(push)到远程仓库 举个例子,你已经有一个项目,并且这个项目已经push到远程仓库中了,现在项目要开发一个新功能,或者是要做一些修改,需要新建一个分支. 步骤如下: 我这里用 ...
- git 远程分支和tag标签的操作
git远程分支操作: 1.创建远程分支 git push --set-upstream origin develop:develop2 在服务器创建远程分支devlop2,让本地的develop分支和 ...
- linux下git分支管理,git远程分支管理
git远程分支管理 使用分支的原则 master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并 ...
- 更改git远程分支的方法
更改git远程分支的方法 Pull失败的解决方法:
- Git远程分支管理(四)
本系列为个人学习Git参照廖雪峰老师的笔记 本文内容:Git远程分支管理 参考笔记: https://www.liaoxuefeng.com/wiki/896043488029600 文章目录 3 G ...
- git删除未监视的文件(untracked files)命令用法
git删除未监视的文件(untracked files)命令用法 git在Linux下删除未监视的文件(untracked files),一般通过命令来执行更方便,具体执行如下: Shell # 删除 ...
- git 远程分支创建与推送
原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html 本地分支的创建 本地分支的来源为执行git che ...
- IntelliJ IDEA切换Git远程分支 提交代码 拉取最新代码
前言:众所周知Git用命令提交代码比较繁琐,而且还得记住命令,那如何让我们更加方便的提交代码呢 以及获取最新内容拉到本地 还有更换你要提交到的分支呢 下面废话不多说. 目录 IDEA里切换Git分支 ...
最新文章
- poj3169(差分约束+SPFA)
- 微信小程序商城demo
- Ubuntu下基于 Cilium CNI 的 Kubernetus集群环境搭建
- 语音信号短时域分析之预处理(三)
- postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例
- ios保存gif到相册_如何在iOS中保存和下载GIF图片
- android 字体倒影,Android笔记:图片倒影、ReflectionImage
- windows 防火墙疑难解答程序_Win8系统设置允许程序通过防火墙的方法
- linux实用的日志分析脚本
- c++ 拷贝构造函数 讲解
- android 布局图片缩放,Android中进行图片缩放显示
- 按键精灵手机助手之字符串处理
- 自动驾驶技术基础——GNSS
- csgo显示连接任何官方服务器失败,csgo连接任意官方服务器失败怎么办_csgo连接官方服务器失败解决方法...
- 线性代数学习笔记——第四十一讲——n维向量空间的子空间
- Qt 实现Unicode字符表情包显示到界面 Emoji
- 每次开机都要按F1的解决办法
- 达梦创建用户无效的用户名报错2101
- 中煤集团公司硬件扩容与数据库迁移项目实施方案
- ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)
热门文章
- 手把手教你做蓝牙小车(二)
- linux 目录 问号 原因,linux – 在目录的ls中显示的问号. IO错误也是如此
- OpenCV的各种矩阵基本运算、基本操作及示例代码(加、减、乘、点乘、点除、乘方、开方、累加、转置、比较等)
- NSDate 转为NSString 时差的问题
- 华视电子vue身份证读取
- uiview 渐变_UIView的背景渐变
- 论文阅读Measuring Regularity of Individual Travel Patterns
- 解读 ESP32 API参考-system-App Image Format
- plsql导入excel数据
- 不同公司系统的对接心得