push就是把你本地仓储的commit传到远程仓储中去.

用法

git push <remote> <branch>

push指定的分支到<remote>中去.  如果对于目标仓储来说不是一次fast-forward的merge, push会失败. 需要先git pull.

git push <remote> --force

效果基本上和前一个命令相似, 但是他不管是不是fast-forward的merge都会push成功. 不建议使用这个命令.

git push <remote> --all

push本地仓储中所有的分支到<remote>.

git push <remote> --tags

当你push一个分支或者使用--all push时, tag不会自动被push. --tag标签会把你本地的所有tag传到远程仓储中去.

讨论

git push最多的使用目的就是把你的本地的修改发布到中央仓储中去. 你可以先rebase -i, 然后把你的本地commit发布到中央仓储中去.

注意了git push后, 远程仓储也merge了你的master.

Force push

当对于<remote>来说不是一个fast-forword的merge时, Git通过拒绝push来防止覆盖中央仓储的历史.因此当远程历史和你的历史有分叉的时候, 你需要先pull, 然后再尝试push.

--force标识会忽略fast-forward merge这个前提, 通过删除上游的修改(你最后一次pull的修改)来使得远程仓储分支和你本地的匹配.  希望你永远都不需要使用push --force.

只Push给裸仓储

只Push给裸仓储. 因为push会使得远程仓储的结构发生改变, 会妨碍别人开发. 裸仓储没有工作目录, 因此不会受到影响.

例子

首先通过fetch中央仓储并rebase你的修改在最新来确保你本地的master是最新的. 交互式的rebase还是在共享你的commit之前整理他们的机会. 然后, 使用push把你本地master的commit发送至中央仓储.

git checkout master
git fetch origin master
git rebase -i origin/master
# Squash commits, fix up commit messages etc.
git push origin master

  

[译]git push的更多相关文章

  1. Git 2.x 中git push时遇到 push.default 警告的解决方法

    近在学习使用 git&GitHub,然后今天遇到了一个问题.在执行 git add 和 git commit 操作之后,再进行 git push 操作,出现了如下提示: $ git push ...

  2. 执行git push出现"Everything up-to-date"

    在github上git clone一个项目,在里面创建一个目录,然后git push的时候,出现报错"Everything up-to-date" 原因:1)没有git add . ...

  3. git push不用重复输入用户名和密码(解决方案)

    每次git push都要输入用户名和密码,有点麻烦,就上网搜了下解决方案. 网上的解决方案有的讲得不清晰,逐个试了后,总结下两种有效的解决方案.   方案一: 1.在计算机安装盘(即一般为C盘)下找到 ...

  4. git push 报错!!!!

    [root@NB sh]# git push To git@x0.xx.xxx.x1:yanjing_chenl/IT-DOC.git ! [rejected] master -> master ...

  5. git push如何至两个git仓库

    分别有仓库 A(github),B(JAE 的 git),本机为C. 假设以 a 仓库作为最终的使用仓库, b为发布仓库.分支都为 dev 第一步,增加远程仓库 git remote add orig ...

  6. git push :推送本地更改到远程仓库的三种模式

    摘要:由于在git push过程中,no-fast-forward 的push会被拒绝,如何解决git push失败的问题?这里面有三种方法,分别会形成merge形式的提交历史,线性形式的提交历史,覆 ...

  7. git push免输入账号和密码方法

    最近在做些oj,所以需要频繁的git push提交代码,每次都要输入帐号和密码,感觉不舒服,于是乎就做了如下设置,然后就可以开心的提交啦- Linux或者Mac下方法: 创建文件,进入文件,输入内容: ...

  8. git push命令

    git push命令用于将本地分支的更新,推送到远程主机.它的格式与git pull命令相仿. $ git push <远程主机名> <本地分支名>:<远程分支名> ...

  9. git push error: A Contributor Agreement must be completed before uploading

    因为是从官方版本库做的镜像,所以有些权限直接从官方同步到了本地. 今天,有同事执行git push操作,报错: 根据网上搜索的内容,在gerrit.config中[auth]中添加如下内容: [aut ...

随机推荐

  1. NuGet打包推送批处理以及MSBuild(通用版)

    使用时注意每个批处理里面的依赖工具路径指向 源码:https://github.com/easonjim/NuGetRun bug提交:https://github.com/easonjim/NuGe ...

  2. ini_set()函数的使用 以及 post_max_size,upload_max_filesize的修改方法

    Apache服务器处理: ini_set('display_errors', 'Off');ini_set('memory_limit', -1); //-1 / 10240Mini_set(&quo ...

  3. Akka: actor应用的一些小结

    1.消息: 1) case class是scala中一个不可变对象(当然你可以让他成为可变的),通过不可变对象来进行消息传递可以更加明确内容,也能保证线程安全 2) 在Java中如果你将class对象 ...

  4. python——复制目录结构小脚本

    引言 有个需要,需要把某个目录下的目录结构进行复制,不要文件,当目录结构很少的时候可以手工去建立,当目录结构复杂,目录层次很深,目录很多的时候,这个时候要是还是手动去建立的话,实在不是一种好的方法,弄 ...

  5. django admin中保存添加的数据提示need string or buffer, int found

    原因 def __unicode__(self): return unicode(self.pk) 此处如果没有unicode就会报这个错误,原因就是编码错误 以为是文件开始没有加utf-8导致的,然 ...

  6. 我所了解的meta

    https://github.com/hoosin/mobile-web-favorites 总况 meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). h ...

  7. python从Microsoft Excel文件中导入数据

    excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...

  8. php 读取excel表格中的内容

    <?php /** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/vi ...

  9. js020-JSON

    js020-JSON 20.1 语法 JSON的语法可以表示为一下三种类型的值. 简单值 使用与JS相同的语法,可以在JSON中表示字符串.数值.布尔值和null,但是JSON不支持JS中的特殊性Un ...

  10. SQL查询效率:100w数据查询只需要1秒钟

    G os: windows 数据库: ms sql server 目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by step -- setp . -- 建表 create ta ...