git,同步一个新的存储库

时间:2014-10-12 06:50:43

标签: git github repository

注意我在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工作的答案,或者我执行上述命令的顺序是否搞砸了他的方法?

1 个答案:

答案 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

的新项目