git push

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

  

时间: 2024-10-11 21:05:07

git push的相关文章

&lt;问题解决02&gt;Linux虚拟机使用git push报错--解决方案如下:

问题描述: 使用git push 报错: error: The requested URL returned error: 403 Forbidden while accessing https://github.com/Newlyfly/Hello_World.git/info/refs fatal: HTTP request failed 解决方案: 解决方案来源博客地址:http://blog.csdn.net/happyteafriends/article/details/1155404

使用git push命令如何忽略不想提交的文件夹或者文件

如下场景是在window下的操作. 在使用node的时候有个node_modules文件夹很大,一般情况下不想提交,忽略的办法如: 1.在该仓库目录下创建一个.gitignore文件,用编辑器输入:/node_modules,之后git push 的时候就会忽略这个文件夹 命令行进入该仓库:touch .gitignore 就会创建该文件,记事本打开输入:/node_modules即可 看下前后对比图

git push报错error: failed to push some refs to &#39;[email&#160;protected]:

$ git push -u origin master To [email protected]:xxx/xxx.git ! [rejected] master -> master (fetch first) error: failed to push some refs to '[email protected]:xxx/xxx.git' hint: Updates were rejected because the remote contains work that you do hint:

Git Push 不用再次输入用户名和密码方法

前言 在大家使用github的过程中,一定会碰到这样一种情况,就是每次要push 和pull时总是要输入github的账号和密码,这样不仅浪费了大量的时间且降低了工作效率.在此背景下,本文在网上找了两种方法来避免这种状况,这些成果也是先人提出来的,在此只是做个总结. 1.方法一 1.1 创建文件存储GIT用户名和密码 在%HOME%目录中,一般为C:\users\Administrator,也可以是你自己创建的系统用户名目录,反正都在C:\users\中.文件名为.git-credentials

on the go way (五)git push 403 error

在使用git push的时候产生这种情况 error: The requested URL returned error: 403 while accessing https://github.comgit/info/refs edit .git/config file under your repo directory find url=entry under section [remote "origin"] change it from url=https://[email pr

git push origin与git push -u origin master的区别

$ git push origin 上面命令表示,将当前分支推送到origin主机的对应分支. 如果当前分支只有一个追踪分支,那么主机名都可以省略. $ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push. $ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了. 不带任何参

git push origin master出错:error: failed to push some refs to

1.输入git push origin master 出错:error: failed to push some refs to 那是因为本地没有update到最新版本的项目(git上有README.md文件没下载下来) 本地直接push所以会出错. 2.所以本地要输入git pull 然后出现的英语提示'git pull <repository> <refspec>'显示要选择远程分支 2.就试试指定目标到远程分支 输入git pull origin 出现提示 but did n

git push冲突解决

1. 首先,可以试图用git push origin branch-name推送自己的修改:2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并:如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name.3. 如果合并有冲突,则解决冲突,并在本地提交:4. 没有冲突或者解决掉冲突后,再用

git push的一个错误

我在把我的本地分支push到远程仓库的时候,一直失败,错误提示是: $ git push origin masterTo [email protected]:xiaxiaosheng/AndroidRemoteCtrl_Client.git ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to '[email protected]:xiaxiaosheng/AndroidRemoteC