我进行了修复和测试,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.
我猜这个问题的原因是分叉有点过时(也许一周)。我已经对叉子进行了其他推动,尽管我不想失去。我在这里做什么?
我认为您的分支不是最新的,因此您需要提取最近的更改,然后将更改推送到远程。
$git pull --rebase branch_path
$git push remote_name branch_name
在本地master
分支上时:
- 您需要将导轨/导轨添加为上游:
git remote add upstream git://github.com/rails/rails.git
现在,使用变基 - 拉动(而不是合并,因为如果您变基,将更容易跟上轨道/轨道上的更新)
git pull --rebase upstream master
将更改推送 - 到主节点(您需要强制推送,但要小心并确保对更改没问题,因为此操作后以前的更改将更难恢复)
git push --force origin master
你的(Github)分支对上游变化一无所知
消息状态清晰
合并远程更改
即 - 在您的 Github 存储库中,您有不在本地存储库中的变更集