我有一个个人git存储库。我想用一个全新的项目替换现有的远程主文件(在github或bitbucket上)(对同一个项目的新尝试)。
我在计算机上删除了项目的现有文件夹。然后我为新尝试创建了一个新文件夹和一些新文件。
如何使用这些新文件替换现有的远程主控?
在新文件夹中,我完成了git init
,git add .
和git commit -m "a completely different attempt"
。但那我该怎么办?我尝试使用git remote add origin git@bitbucket.org:username/repo.git
和git push origin master
,但这会出现错误消息(我尝试按照错误消息中提出的建议,但这只会导致新的错误消息)...
答案 0 :(得分:2)
当您提出涉及错误消息的问题时,如果您在问题中包含确切的错误消息,则会有所帮助。鉴于您正在做什么(尝试用您的本地存储库替换远程存储库的历史记录),您可能会看到以下错误:
To github.com:larsks/someproject.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:larsks/someproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这是因为您尝试替换历史记录,而不是简单地使用一组新的更改来更新它。这不是您想要的意外,因为它会导致数据丢失(即项目的部分或全部历史记录)。但是,这正是您想要的,因此您需要使用--force
(-f
)选项:
git push -f
这应该导致类似:
[...]
+ 2a49b3d...3d1e101 master -> master (forced update)
另一种解决方案当然是删除然后重新创建远程存储库。