0

我进行了修复和测试,git commit -a更新了我的分支,现在我正在尝试推送到我之前制作的 GitHub 分支:

vagrant@rails-dev-box:~/rails$ git push mine my_fix
Username for 'https://github.com': myusername
Password for 'https://myusername@github.com':
To https://github.com/myusername/rails.git
 ! [rejected]        my_fix -> my_fix (non-fast-forward)
error: failed to push some refs to 'https://github.com/myusername/rails.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

我猜这个问题的原因是分叉有点过时(可能是一个星期)。尽管我不想输,但我已经做出了其他推动。我在这里做什么?

4

3 回答 3

1

我认为您的分支不是最新的,因此您需要提取最近的更改,然后将更改推送到远程。

    $git pull --rebase branch_path
    $git push remote_name branch_name
于 2012-11-24T03:53:36.487 回答
0

您的(Github)分支对上游更改一无所知

消息说明清楚

合并远程更改

即 - 在您的 Github 存储库中,您有变更集它们不在本地存储库中

于 2012-11-24T03:48:33.367 回答
0

master本地分支上:

  1. 您需要添加 rails/rails 作为上游: git remote add upstream git://github.com/rails/rails.git
  2. 现在,使用 rebase 拉动(而不是使用合并,因为如果你 rebase 会更容易跟上 rails/rails 上的更新) git pull --rebase upstream master
  3. 将更改推送到您的主服务器(您将需要强制推送,但要小心并确保您对更改没问题,因为在此操作后之前的更改将更难恢复) git push --force origin master
于 2012-11-24T09:57:56.953 回答