文章目录

  • 一、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命令用法介绍相关推荐

  1. Git 远程分支的pull与push

    远程分支信息查看 git branch -r #查看远程分支git branch -a #查看所有分支,本地和远程git remote show [remote-name] #查看远程仓库信息 其中g ...

  2. git 新建分支并推送(push)到远程仓库

    git 新建分支并推送(push)到远程仓库 举个例子,你已经有一个项目,并且这个项目已经push到远程仓库中了,现在项目要开发一个新功能,或者是要做一些修改,需要新建一个分支. 步骤如下: 我这里用 ...

  3. git 远程分支和tag标签的操作

    git远程分支操作: 1.创建远程分支 git push --set-upstream origin develop:develop2 在服务器创建远程分支devlop2,让本地的develop分支和 ...

  4. linux下git分支管理,git远程分支管理

    git远程分支管理 使用分支的原则 master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并 ...

  5. 更改git远程分支的方法

    更改git远程分支的方法 Pull失败的解决方法:

  6. Git远程分支管理(四)

    本系列为个人学习Git参照廖雪峰老师的笔记 本文内容:Git远程分支管理 参考笔记: https://www.liaoxuefeng.com/wiki/896043488029600 文章目录 3 G ...

  7. git删除未监视的文件(untracked files)命令用法

    git删除未监视的文件(untracked files)命令用法 git在Linux下删除未监视的文件(untracked files),一般通过命令来执行更方便,具体执行如下: Shell # 删除 ...

  8. git 远程分支创建与推送

    原文地址:http://hi.baidu.com/lingzhixu/blog/item/4a9b830bb08a329fe850cd5b.html 本地分支的创建 本地分支的来源为执行git che ...

  9. IntelliJ IDEA切换Git远程分支 提交代码 拉取最新代码

    前言:众所周知Git用命令提交代码比较繁琐,而且还得记住命令,那如何让我们更加方便的提交代码呢 以及获取最新内容拉到本地 还有更换你要提交到的分支呢 下面废话不多说. 目录 IDEA里切换Git分支 ...

最新文章

  1. poj3169(差分约束+SPFA)
  2. 微信小程序商城demo
  3. Ubuntu下基于 Cilium CNI 的 Kubernetus集群环境搭建
  4. 语音信号短时域分析之预处理(三)
  5. postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例
  6. ios保存gif到相册_如何在iOS中保存和下载GIF图片
  7. android 字体倒影,Android笔记:图片倒影、ReflectionImage
  8. windows 防火墙疑难解答程序_Win8系统设置允许程序通过防火墙的方法
  9. linux实用的日志分析脚本
  10. c++ 拷贝构造函数 讲解
  11. android 布局图片缩放,Android中进行图片缩放显示
  12. 按键精灵手机助手之字符串处理
  13. 自动驾驶技术基础——GNSS
  14. csgo显示连接任何官方服务器失败,csgo连接任意官方服务器失败怎么办_csgo连接官方服务器失败解决方法...
  15. 线性代数学习笔记——第四十一讲——n维向量空间的子空间
  16. Qt 实现Unicode字符表情包显示到界面 Emoji
  17. 每次开机都要按F1的解决办法
  18. 达梦创建用户无效的用户名报错2101
  19. 中煤集团公司硬件扩容与数据库迁移项目实施方案
  20. ddb文件怎么打开?PROTEL 99se软件pcb设计下载安装使用教程(5)

热门文章

  1. 手把手教你做蓝牙小车(二)
  2. linux 目录 问号 原因,linux – 在目录的ls中显示的问号. IO错误也是如此
  3. OpenCV的各种矩阵基本运算、基本操作及示例代码(加、减、乘、点乘、点除、乘方、开方、累加、转置、比较等)
  4. NSDate 转为NSString 时差的问题
  5. 华视电子vue身份证读取
  6. uiview 渐变_UIView的背景渐变
  7. 论文阅读Measuring Regularity of Individual Travel Patterns
  8. 解读 ESP32 API参考-system-App Image Format
  9. plsql导入excel数据
  10. 不同公司系统的对接心得