基本上,由于我无法控制的事件,我的远程仓库被移动了 - 在此期间我在本地副本上做了很多工作,现在我真的只想用我的本地文件覆盖远程仓库中的所有内容。 / p>
但是,我似乎无法做到这一点。我能得到的最接近的是拉和合并,但是它想要引导我完成一些复杂的合并过程。我不想合并。我想覆盖。我不需要新的分支 - 基本上,我只是想重新开始。
远程回购正在解决。
答案 0 :(得分:50)
您可以删除分支并重新创建它,假设要覆盖的分支是dev
:
删除远程主机(github)中的分支
git push origin :dev
然后再次推动你的开发者:
git push origin dev
我使用Github进行托管,不熟悉unfuddle,但我认为它也可以解决问题。 :)
就像@melee提到的那样,你也可以使用
git push origin dev -f
(不确定 -f
是否有效,但--force
是否正常)
git push origin dev --force
强制覆盖分支。我记得我之前做过。谢谢@melee。 :)
答案 1 :(得分:4)
如何为master分支执行此操作,而不从远程仓库中删除数据:
创建一个新文件夹,init git,添加远程仓库 - 不要拉或取!
mkdir clean_repo
git init
git remote add origin <remote-repo>
创建(并切换到)空本地分支,添加,提交并将测试文件推送到此。
git checkout test
echo "test" > test
git add .
git commit -m "adding test"
git push origin:test
在github / bitbucket上,将默认分支更改为新分支
在本地,切换到主分支,提交并推送到远程仓库/分支
git checkout -b master
git push origin --mirror
答案 2 :(得分:0)
我不是github生态系统的专家,但为什么你不能只重置你的远程存储库网址?
git remote set-url origin /path/to/your/new/remote/repository/url
您可能还需要通过查看here来配置您的上游分支。
有关git remote...
的更多信息,请查看here。
答案 3 :(得分:0)
曾经遇到过同样的问题。这个命令对我有用。
git push --set-upstream origin master --force