git push与git pull是一对推送/拉取分支的git命令。 
git push 使用本地的对应分支来更新对应的远程分支。

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

注意: 命令中的本地分支是指将要被推送到远端的分支,而远程分支是指推送的目标分支,即将本地分支合并到远程分支。 
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 
origin是一个远程厂库地址。

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,这条命令是删除远程master分支。

$ git push origin :master
# 等同于
$ git push origin --delete master

上面命令表示删除origin主机的master分支。

如果当前分支与远程分支之间存在追踪关系(即分支名相同),则本地分支和远程分支都可以省略。

$ git push origin

上面命令表示,将当前分支推送到origin主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

$ git push

如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master

上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。如果要修改这个设置,可以采用git config命令。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple

还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项。

$ git push --all origin

上面命令表示,将所有本地分支都推送到origin主机。

如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用–force选项。

$ git push --force origin

上面命令使用–force选项,结果导致在远程主机产生一个”非直进式”的合并(non-fast-forward merge)。除非你很确定要这样做,否则应该尽量避免使用–force选项。

最后,git push不会推送标签(tag),除非使用–tags选项。

$ git push origin --tags

git pull 获取并合并其他的厂库,或者本地的其他分支。

git pull 与 git push操作的目的相同,但是操作的目标相反。命令格式如下:

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

例如:

git pull origin master:my_test

上面的命令是将origin厂库的master分支拉取并合并到本地的my_test分支上。

如果省略本地分支,则将自动合并到当前所在分支上。如下:

git pull origin master

注:如果你想参与github上的一些优秀的项目,则下面提供一个通用的例子: 
首先,需要一个github的账号,并fork一个你感兴趣的repository。 
下面描述过程中会涉及两个远程主分支,为了很好的区别,我们把fork出来的主分支称为远程A repository,本fork的分支称为远程B repository

$git clone <远程Arepository> #克隆你fork出来的分支

$git remote add <远程Brepository标签> git@github.com:XXXX/ceph.git #添加远程Brepository标签

$git pull <远程B厂库标签> master:master  #从远程Brepository的master分支拉取最新objects合并到本地master分支

$git checkout YYYY #切换到要修改的分支上

$git branch develop; git checkout develop #在当前分支的基础上创建一个开发分支,并切换到该分支上,你将在该分支上coding

coding...... #在工作区coding

$git add .#将修改保存到索引区

$git commit -a #将修改提交到本地分区

$git push origin my_test:my_test #将本地分支my_test提交到远程A repository的my_test分支上

然后在github web界面上将my_test分支合并到你需改的远程B repository 分支上。等待管理员review,如果有问题,就继续在develop分支当修改,并commit –amend,在之前的commit上修改。知道被meger。

git push与git pull是一对推送/拉取分支的git命令。 
git push 使用本地的对应分支来更新对应的远程分支。

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

注意: 命令中的本地分支是指将要被推送到远端的分支,而远程分支是指推送的目标分支,即将本地分支合并到远程分支。 
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master
  • 1

上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 
origin是一个远程厂库地址。

如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,这条命令是删除远程master分支。

$ git push origin :master
# 等同于
$ git push origin --delete master
  • 1
  • 2
  • 3

上面命令表示删除origin主机的master分支。

如果当前分支与远程分支之间存在追踪关系(即分支名相同),则本地分支和远程分支都可以省略。

$ git push origin
  • 1

上面命令表示,将当前分支推送到origin主机的对应分支。

如果当前分支只有一个追踪分支,那么主机名都可以省略。

$ git push
  • 1

如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。

$ git push -u origin master
  • 1

上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。如果要修改这个设置,可以采用git config命令。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple
  • 1
  • 2
  • 3

还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项。

$ git push --all origin
  • 1

上面命令表示,将所有本地分支都推送到origin主机。

如果远程主机的版本比本地版本更新,推送时Git会报错,要求先在本地做git pull合并差异,然后再推送到远程主机。这时,如果你一定要推送,可以使用–force选项。

$ git push --force origin
  • 1

上面命令使用–force选项,结果导致在远程主机产生一个”非直进式”的合并(non-fast-forward merge)。除非你很确定要这样做,否则应该尽量避免使用–force选项。

最后,git push不会推送标签(tag),除非使用–tags选项。

$ git push origin --tags
  • 1

git pull 获取并合并其他的厂库,或者本地的其他分支。

git pull 与 git push操作的目的相同,但是操作的目标相反。命令格式如下:

git pull <远程主机> <远程分支>:<本地分支>
  • 1

例如:

git pull origin master:my_test
  • 1

上面的命令是将origin厂库的master分支拉取并合并到本地的my_test分支上。

如果省略本地分支,则将自动合并到当前所在分支上。如下:

git pull origin master
  • 1

注:如果你想参与github上的一些优秀的项目,则下面提供一个通用的例子: 
首先,需要一个github的账号,并fork一个你感兴趣的repository。 
下面描述过程中会涉及两个远程主分支,为了很好的区别,我们把fork出来的主分支称为远程A repository,本fork的分支称为远程B repository

$git clone <远程Arepository> #克隆你fork出来的分支

$git remote add <远程Brepository标签> git@github.com:XXXX/ceph.git #添加远程Brepository标签

$git pull <远程B厂库标签> master:master  #从远程Brepository的master分支拉取最新objects合并到本地master分支

$git checkout YYYY #切换到要修改的分支上

$git branch develop; git checkout develop #在当前分支的基础上创建一个开发分支,并切换到该分支上,你将在该分支上coding

coding...... #在工作区coding

$git add .#将修改保存到索引区

$git commit -a #将修改提交到本地分区

$git push origin my_test:my_test #将本地分支my_test提交到远程A repository的my_test分支上
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

然后在github web界面上将my_test分支合并到你需改的远程B repository 分支上。等待管理员review,如果有问题,就继续在develop分支当修改,并commit –amend,在之前的commit上修改。知道被meger。

git push & git pull 推送/拉取分支的更多相关文章

  1. Git:多人推送/抓取分支事项

    1.推送分支 1.1使用命令符git push origin branch-name,推送自己已修改的分支 例如git push origin master,git push origin dev. ...

  2. git push 本地项目推送到远程分支

    大家有的时候,会在本地新建项目,这里说一下在本地项目建立本地git仓库,然后push到远程仓库的步骤 1.在本地项目的文件夹下,git仓库初始化 git init 初始化本地git仓库 2. git ...

  3. git push 本地项目推送到远程分支[z]

    大家有的时候,会在本地新建项目,这里说一下在本地项目建立本地git仓库,然后push到远程仓库的步骤 1.在本地项目的文件夹下,git仓库初始化 git init 初始化本地git仓库 2. git ...

  4. git push & git pull 推送/拉取指定分支

    https://blog.csdn.net/litianze99/article/details/52452521

  5. 版本控制git之三-多人协作 变基 推送 拉取 删除远程分支

      版本控制git之三-多人协作 wangfeng7399已关注0人评论350人阅读2019-02-20 21:33:08   如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源 ...

  6. git clone新项目后如何拉取分支代码到本地

    1.git clone git@git.n.xxx.com:xxx/xxx.git 2.git fetch origin dev    命令来把远程dev分支拉到本地 3.checkout -b de ...

  7. git day01笔记 常用操作命令 快照 推送 拉取

    ansible 批量在远程主机上执行命令或者脚本 git   做版本控制的一个工具 ## git操作命令: 工作区:当前编辑的区域 缓存区:add 之后的区域 本地仓库:commit之后的区域 远程仓 ...

  8. 关于git分支管理,推送拉取等等

    git推送本地分支到远程分支 场景 有时候我们开发需要开一个分支,这样可以有效的并行开发. 开分支有两种方式: 一种是在远程开好分支,本地直接拉下来; 一种是本地开好分支,推送到远程. 远程先开好分支 ...

  9. git 将本地文件推送到远程分支的分支

    1.  新建文件夹复制远程分支 2. 切换到远程分支 3. 推送到远程 添加到暂存区,先运行 " git add . " 查看文件状态                     在运 ...

随机推荐

  1. \\.\Global\vmx86: 系统找不到指定的文件

    使用vmware虚拟机时出现如下的错误: vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件 解决办法: 新建文件,将下面的代码拷贝进去: @Echo Off ...

  2. [Python]打印a..z的字符

    import string print string.letters[0:26]

  3. 压缩感知(CS)

    总结一下最近看的压缩感知(Compressed Sensiong)的内容. 它是在采样过程中完成了数据压缩的过程. 一. 将模拟信号转换为计算机能够处理的数字信号,必然要经过采样的过程.问题在于,应该 ...

  4. vue 实现表单中password输入的显示与隐藏.

    实现效果: 点击 “眼睛” 的时候显示与隐藏 代码: <!DOCTYPE html> <html lang="en"> <head> <m ...

  5. 使用electron构建跨平台Node.js桌面应用经验分享

    by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=6154 本文可全文转载,但需得到原作者书面许可,同时保留原作者和出处,摘要引流则随 ...

  6. PIE SDK创建掩膜

      1.算法功能简介 图像掩膜(Mask)用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.掩膜是一种图像滤镜的模板,实用掩膜经常处理的是遥感图像.当提取道 ...

  7. cmd笔记

    批量获取一个文件夹内所有文件的文件名: dir *.png /b >list.txt tree /f >list.txt for /f "delims=" %%a in ...

  8. Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离

    Docker的安装 一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化 ...

  9. 案例44-crm练习新增客户使用struts2

    1 src下配置文件 1 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...

  10. TOJ 4394 Rebuild Road

    描述 Once,in a kingdom,there are N cities.M roads have been buit such that from one city you can reach ...