git push和 git pull的使用
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 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 ...
- git push VS git fetch
最近我们研发团队所有项目源码的版本管理实现了统一化,全部统一采用git进行管理,丢弃svn.在使用git的过程中,遇到了git pull和git fetch两个命令,针对具体含义与区别比较模糊,进而进 ...
- git push前请先git pull
开发过程中 如果要推送代码到远程仓库,请先git pull.养成好习惯. 原因很简单,在你开发过程中,你的同事可能也在改代码然后他提交了没通知你,你直接git push很容易造成代码冲突,代码冲突解决 ...
- git push git pull 推送/拉取分支
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支. <code class="hljs xml has- ...
- Git原理杂谈之pull/push命令
这边文章是基于之前三篇文章的后续篇,之前三篇能够帮助小白同学概要性地理解Git的整体原理及快速掌握Git基本技能以进入团队开发,所以建议对Git只了解些浅层内容的看客老爷们先看完前三篇再从本篇开始往后 ...
- git pull 与 git push 的区别
git push与git pull是一对推送/拉取分支的git命令. git push 使用本地的对应分支来更新对应的远程分支 $ git push <远程主机名> <本地分支名&g ...
- git每次git pull,git push时提示enter passphrase for key ‘~/.ssh/id_rsa‘需要输入密码
git每次git pull,git push时提示enter passphrase for key '~/.ssh/id_rsa'需要输入密码解决办法: 在项目文件夹内打开gitbash 输入以下命令 ...
- “ git commit”和“ git push”之间有什么区别?
在我正在学习的Git教程中, git commit用于存储您所做的更改. git push什么用? #1楼 git commit记录您对本地存储库的更改. git push使用本地更改更新 远程存储库 ...
- git push error. ! [rejected] master - master (non-fast-forward)
错误提示: Cheetah@xxxx MINGW64 /e/Projs/enft/data/cv_key_frame (master) $ git push To github.com:Anthony ...
最新文章
- 关于生成漏洞信息属性代码备份
- Ubuntu16.04安装ros残缺包
- Mysql数据库大表归档操作
- 百信银行基于 Apache Hudi 实时数据湖演进方案
- lvs增加并发连接,解决因为哈希表过小导致软中断过高问题
- Python开发利器之UliPad
- Java基础学习总结(112)——JUnit 5最新概况
- ICEM 二维块的拉伸
- 2023南京理工大学计算机考研信息汇总
- 一篇文章带你读懂水晶易表的简介及其安装初识
- php ucfirst,Arale源码解析(3)——Base模块和Aspect模块
- 对比度 css_更好的颜色和对比度可访问性CSS技巧
- java求指数_Java Math类的常用方法,指数运算
- 互联网变迁-真实化信息的转移
- 实习--广东电信有限公司汕头市分公司讲座
- CHARACTERISTIC DEFINITION
- 票啦啦--手机购电影票
- 英国内政大臣:科技公司给信息加密不可接受
- 《Swift4.0互动教程》正式发布
- 云服务器ECS远程监控
热门文章
- 蓝牙模块惨痛教训——模块与单片机串口的隔离(更新)
- 通过TWRP清除手机锁屏密码
- php网页增加音乐代码,js给网页加上背景音乐及选择音效的方法
- 保持MacBook电池健康并延长其使用寿命的方法
- DeleteObject()
- 移动端(手机端)页面自适应解决方案—rem布局篇 1
- 透过“500家门店计划”,看华为的“全屋智能”野心
- android布局靠底部,android – 使用layout_gravity =“bottom”放置在LinearLayout的底部
- 队列 (Queue)
- Java项目:SSM医院病历信息管理系统