2013-10-14 124 views
0

我已经开始学习Ruby on Rails和Git。无法将更改推送到远程Git回购

每当我尝试任何更改推到我在Github远程回购,我遇到以下错误:

C:\Sites\first>git push origin master 
To [email protected]:piy9/Twitter_clone.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:piy9/Twitter_clone.git' 
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') 
hint: before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

注:我添加目录中的所有文件,并提交更改。我还没有使用pull或checkout创建任何单独的分支。

我不是要求解决问题的方法。

git push -f or 
git push origin +HEAD 

为我工作。

我想知道的是,为什么我在尝试推送到原始分支时遇到错误。

+0

此链接可能会有帮助:[Pro Git](http://git-scm.com/book/) – Jost

+0

可能是你必须做git pull然后再试一次 – Amar

回答

0

按照这一点,并得到一切正常。 ...

git branch production 
git checkout production 
#do some code changes 
git commit -am "some desparate code changes to try fix heroku" 
git push heroku production:master 

注:这将让您的工作,并会离开原来的分支。

,或者你可以尝试这一个也git push heroku +master

+0

没有试图直接将它部署到heroku。首先,我试图对Github上的远程回购进行一些更改。 – Piyush

+0

然后首先从git中提取代码。 –

0

貌似远程分支是你前面的,这意味着它包含了一些当地的分支机构不具有。你可以很容易地看到远程分支提交,因为当地的分公司创建或更新时(假设你运行“混帐提取产地/主”先获取远程的变化):

git diff HEAD...origin/master 

输出会回答你的问题,你为什么得到错误。

现在,我对你遇到的问题的原因猜测是有人有权访问远程并推送某些东西,或者你使用github编辑界面修改了某些内容,并且自从上次检出/提取/合并后提交。如你所做的那样使用强制推送不是一种好方法,它会混淆历史,它基本上会用你的副本覆盖远程分支,忽略任何远程更改。

+0

我是唯一一个在这个项目上工作的人。 我在github网站上创建了一个空的repo,然后试图将本地数据推送到远程数据库。 – Piyush

+0

@Piyush然后做差异,看看什么停止远程端接受你的推。可能会是新的项目创建添加GPL许可证或自述文件提交,您的本地分支没有。 –