注意我在askubuntu上发布了这个问题,但我没有得到答案。我在meta上看到this post,所以我想我会尝试在SO上发帖。< / p>
所以我基于Github上的现有存储库初始化了一个git存储库。我发起的项目与为存储库列出的最新提交非常不同。
当我尝试执行这组命令时
git init
git remote add origin https://github.com/account/repo
git fetch origin
git add -A
git commit -m "message"
git push origin master
我收到以下错误:
To https://github.com/account/repo
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/account/repo'
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.
问题是,我知道这个存储库和源之间存在差异,但我明确地不想从存储库中提取最新的更改。我想用这个存储库中的更改覆盖Github上的更改。
有没有这样做?无论如何,即使有快速转发错误也会强制推送?
感谢您提供任何帮助或指导。
编辑: Adam Dymitruk在this question工作的答案,或者我执行上述命令的顺序是否搞砸了他的方法?
答案 0 :(得分:1)
将-f
添加到您的git推送行以强行推送
git push -f origin master
这将抛弃远程存储库的master的任何现有历史记录。
如果您想保留现有的历史记录,那么
Mothball现有的主分支,并将您的新分支重命名为其他东西,然后推送它。 git push origin master:new_proj
。然后是git checkout new_proj
。您现在可以通过&origin; master / master&#39;来访问旧的项目历史记录。以及new_proj