0

我已经开始学习 Ruby on Rails 和 Git。

每当我尝试将任何更改推送到 Github 上的远程仓库时,都会遇到以下错误:

C:\Sites\first>git push origin master
To git@github.com:piy9/Twitter_clone.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com: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

为我工作。

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

4

2 回答 2

0

看起来远程分支在你之前,这意味着它包含你本地分支没有的东西。自从创建或更新本地分支后,您可能很容易看到远程分支上的提交(假设您首先运行“git fetch origin/master”来获取远程更改):

git diff HEAD...origin/master

输出将回答您为什么会收到错误的问题。

现在,我对您遇到问题的原因的猜测是有人可以访问远程并推送某些内容,或者您​​使用 github 编辑界面修改了某些内容并在上次结帐/拉取/合并后提交。像你一样使用强制推送不是一个好方法,它会弄乱历史,它基本上用你的副本覆盖远程分支,忽略任何远程更改。

于 2013-10-14T14:03:35.827 回答
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

Note: this will get your work done and will leave your previous branch.

or you can try this one also git push heroku +master

于 2013-10-14T11:58:27.733 回答