我有一个本地.git
回购,一个关于Bitbucket(origin
)的回购,还有一个在远程EC2服务器(remote1
)上设置的裸仓库。我一直在本地工作,并推动origin
和remote1
几个月。我最近决定删除我的本地git存储库并通过使用git init
创建一个新的本地存储库,然后添加我的本地文件并提交它们来重新开始。我可以推到origin
就好了(因为我也在Bitbucket上重新创建了回购,因此提交历史记录了)。但是,当我尝试强制推送到remote1
时,我得到SmartGit(GIT GUI)抛出的以下消息:
推动已经被迫,但仍被拒绝。这通常意味着 自上次以来远程存储库中的分支已更改 获取和推送您的提交将覆盖远程提交 您从未见过的存储库。如果你真的想 覆盖这些提交,首先拉出它们,然后再次强制推送。
这种做法在提交历史不再适用的情况下是有道理的,但我真的只是希望能够用本地的任何内容来推送和覆盖任何提交历史记录。
我的直觉是登录remote1
并运行git init --bare
,但我仍然收到上述消息。
顺便说一句,我通过git bash在本地运行以下命令:
git push -u remote1 master
并收到以下消息:
权限被拒绝(publickey)。致命:无法从远程读取 库中。
请确保您拥有正确的访问权限和存储库 存在。
现在我真的很困惑可能是什么原因以及如何解决它 - 任何建议都会受到欢迎。
答案 0 :(得分:1)
在运行git init --bare
之前,您是否正确删除/删除了现有的远程仓库?简单地重新初始化不会删除存储库的提交历史记录。
如果不是这样,请使用url和文件路径验证您的遥控器是否已正确设置。如果git ls-remote remote1
无法成功ping您的远程仓库,则会输出错误。