文章目录

  • 格式 (很重要)
  • 常用写法
    • 1. 正常写法
    • 2.省略:<远程分支名>
    • 3.省略<远程主机名>和:<远程分支名>
    • 4.省略<远程主机名> <本地分支名>:<远程分支名>
    • 小福利

在使用git push之前,我们最起码要知道本地和远程的概念,以及他们的关系。本地分为工作目录、暂存区和本地仓库,远程可以有很多仓库,也叫作主机。我们只有将修改后的代码commit到本地仓库,才能使用push命令推送到远程指定的主机中。

格式 (很重要)

push命令的作用是将本地当前分支的代码推送到远程指定的分支上,在多人协作中,小组成员就能在远程主机中看到自己修改的代码了。命令的格式如下:

git push <远程主机名> <本地分支名>:<远程分支名>

牢记格式很重要,很多初学者没有添加后面的参数,使用git push也能完成推送功能,但其实省略参数只能在特定的环境中生效,恰巧你当时的环境正合适。如果换了分支或者远程主机,就会导致很麻烦的问题。命令格式也很好记,可以理解为,使用git push命令将<本地分支名>的代码推送到<远程主机名>中的<远程分支名>上。

  • <远程主机名> :指的是你想要推送到哪个远程主机中,在我们克隆一个项目的时候,git会自动帮我们把远程主机起名为origin,一般情况下是不会去修改这个名字的。我们可以使用remote命令来添加多个远程主机,那么什么时候会添加多态远程主机呢?感兴趣可以看这篇文章:还没有写
  • <本地分支名>:这个很好解释,就是你本地分支的名字,如果对git分支还不了解分支,可以看这篇文章:还没有写。可以使用命令git branch来查看本地都有哪些分支,结果如下图,意思是我本机一共有两个分支:master和dev,master分支前面加了*号,表示当前处于master分支。
  • <远程分支名>:指的是远程主机中的分支名,如果远程主机没有这个分支,则会新创建一个。

常用写法

有几种很常见的push操作,在这里列出来

1. 正常写法

填写所有的参数,这么写比较清晰明了,不容易弄混,适合<本地分支名><远程分支名>不一样的情况。举个栗子:

git push origin dev:test

意思是将本地的dev分支上的代码推送到远程主机名为origintest的分支上。如果远程的test分支不存在,则会被创建,这也是一种创建远程分支的办法。

2.省略:<远程分支名>

如果本地分支名和远程分支名一样的情况下,可以省略:<远程分支名>。如果远程主机中不存在该分支,那么会被创建。我们就可以使用命令:

git push origin dev

来代替

git push origin dev:dev

3.省略<远程主机名>和:<远程分支名>

如果本地分支已经跟远程分支建立了追踪关系,那么可以省略<远程主机名>:<远程分支名>
使用git branch -vv命令,可以查看本地分支跟远程分支是否存在追踪关系,如下图所示,本地dev分支跟远程origin/dev分支存在追踪关系,本地master分支跟远程origin/master分支有追踪关系。

此时可以看到我们当前处于master分支,因此就可以使用命令:

git push origin

来代替:

git push origin master:master

如果当前分支没有追踪关系的远程分支会出现什么结果呢?我们来创建一个新的分支,并将其设置为当前分支。
使用命令git checkout -b stt创建一个新的分支stt,参数-b的意思是将新创建的分支设置为当前分支。然后使用git push origin看能不能推送到远程。结果如下图:

我们发现出现一个fatel错误,提示说找不到上游的分支,意思就是远程没有与当前分支对应的追踪关系,需要用命令git push --set-upstream origin stt先建立关系才行。输入这条命令之后发现,git会将本地stt分支推送到了远程的stt分支上,并建立了两个的追踪关系。

4.省略<远程主机名> <本地分支名>:<远程分支名>

在之前的命令中,我们都会添加<远程主机名>来指定要推送到哪一台主机上,但如果连主机名都不想写,可以吗?当然可以,我们只需要保证本地仓库只跟一台远程主机有关联即可。其实我们在正常的开发中,远程主机确实只有一个,那就是我们克隆的远程项目的主机。如果不使用特殊的操作,根本用不着跟其他主机建立联系。

假如我们当前的分支是在dev下面,所以我们就可以通过命令

git push

来代替命令:

git push origin dev:dev

假如后来我们新增了一台或者多台远程主机,主机2、主机3、主机4…等等,那么在使用push命令的时候就必须要加上<远程主机名>这个参数了

以上就是所有关于git push命令的详解

小福利

海量编程资源:https://shimo.im/docs/0l3NVZX6l6tB7D3R/
承诺所有资源不收任何费用,没有任何套路!如果觉得有用希望可以点个赞+评论,感谢支持!

git push的详细使用相关推荐

  1. git pull git push的详细使用

    git pull & git push的详细使用 git pull 常用 pull意为拉,这里引申为拉取代码. 在Git命令中使用pull,会将你的远程代码拉取到本地并进行合并 格式: git ...

  2. git branch的详细使用,10个常见用法

    序 branch命令主要用来处理跟分支有关系的功能,比如创建分支.删除分支.查看本地分支.查看远程分支等. 常用命令 1.查看本地分支 git branch 如果不添加任何参数,则代表显示本地所有分支 ...

  3. git push 的符号笔有什么用_Git 标签(tag)作用、分支区别及常用命令

    Git 跟其它版本控制系统一样,可以对某一时间点上的版本打上标签.在做版本发布的时候经常会用到.尽管 Git 只实现了一种标签对象,但是有两种基本的标签类型,通常称为轻量级的(lightweight) ...

  4. git指令快捷 idea_IDEA+Git+Gitlab使用详细教程

    GitLab 安装踩坑 502错误码和访问卡顿解决办法 Gitlab对内存的要求高,我的服务器Centos 7+2核心+2G内存,频繁报502错误,访问也很卡.原因可能是可用内存太少. # free ...

  5. 简单明了 - Git 使用超详细教程

    见:http://www.admin10000.com/document/5374.html 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? S ...

  6. Git初学札记(四)————Git Push的常规操作与Pull冲突解决

    目录 引言 Git命令行的远程Push EGit Push操作中的冲突问题 同步 工作区与本地库同步 工作区与远程库同步 图标 重点 引言 在团队开发当中,Git Push是多人协作环节中的最重要的一 ...

  7. git init、git status、git config user.name、git add、git commit、git remote、git push、git clone、git pull

    1. Git本地仓库初始化 1.1 git init 功能 git init:初始化一个新本地仓库,它会在工作目录下生成一个.git的隐藏文件夹来管理仓库,千万不要删掉它. 1.2 git statu ...

  8. Git使用技巧--详细教程

    Git使用流程及技巧 - 详细教程 前言 1. 技巧 1.1. 基础技巧 1.2. 解决Git Bash命令行的中文乱码问题 1.2.1. 情况1:内部资源乱码 1.2.2. 情况2:远程库资源乱码( ...

  9. git常用命令之git push使用说明

    详细的命令使用说明,请参考点击打开链接 Git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分 ...

最新文章

  1. 网页怎么在图片上添加文字_想给图片添加文字,留白,添加小印章?用手机三步搞定...
  2. linux tcp重传多会导致软中断在各个核很不均匀么?
  3. 三招让你从求职者中脱颖而出(转)
  4. java发送http请求的四种方式
  5. SpringBoot另一大神器-Actuator
  6. Linux JDK升级
  7. tiny4412初期环境搭建
  8. 【算法设计与分析】13 分治策略的设计思想
  9. 电脑系统怎么卸载驱动程序
  10. tensorflow图像数据处理
  11. 信息文档分工会在运动会象棋比赛中夺得佳绩
  12. JavaEE 企业级分布式高级架构师(七)MongoDB学习笔记(3)
  13. login.defs文件基础
  14. Matlab:调试成功运行失败的解决方法(附加求助!)
  15. Linux学习之定时任务调度
  16. jdk1.8的下载与安装教程
  17. github使用ssh方式
  18. 袪除疾病的心法(十三)财运篇
  19. 使用Java定义一个动物类
  20. 云计算市场价值爆发,两马之战日趋激烈

热门文章

  1. 关于VMWare Data Protection VDP的使用心得
  2. HDFS的常用操作--hdfs下的文件操作常用命令总结
  3. php实现视频转gif,一种在线视频转GIF的方法与流程
  4. 优质计算机教案,信息技术优质课教案.docx
  5. C - Recursive sequence (矩阵ksm)
  6. React 基础----1
  7. java梅森素数计算程序_梅森素数计算器(prime95)
  8. 农副产品视觉检测——大米外观品质检测仪
  9. 软件开发过程与项目管理(10.软件项目人员与沟通计划)
  10. MySQL批量导入Excel数据【超详细】