43

基本上,由于我无法控制的事件,我的远程仓库被移动了——与此同时,我在本地副本上做了很多工作,现在我真的只想用我的本地文件覆盖远程仓库中的所有内容。

但是,我似乎无法做到这一点。我能得到的最接近的是拉和合并,但它想引导我完成一些复杂的合并过程。我不想合并。我想覆盖。我不需要一个新的分支——基本上,我只想要一个新的开始。

远程仓库处于 unfuddle 状态。

4

4 回答 4

60

您可以删除分支并重新创建它,假设您要覆盖的分支是dev

删除远程主机(github)中的分支

git push origin :dev  

然后再次推动你的开发:

git push origin dev

我使用 Github 进行托管,不熟悉 unfuddle,但我认为它也适用于 unfuddle。:)


正如@melee 提到的,您也可以使用

git push origin dev -f

(不确定是否-f有效,但--force可以)

git push origin dev --force

强制覆盖分支。我记得我以前做过。谢谢@melee。:)

于 2011-12-05T15:09:29.510 回答
10

一直有同样的问题。这个命令对我有用。

git push --set-upstream origin master --force
于 2019-05-07T16:44:13.607 回答
5

如何为 master 分支执行此操作,而不从远程 repo 中提取数据:

  1. 创建一个新文件夹,初始化 git,添加远程仓库 - 不要拉取或获取!

    mkdir clean_repo

    git init

    git remote add origin <remote-repo>

  2. 创建(并切换到)空的本地分支,添加、提交并将测试文件推送到其中。

    git checkout test

    echo "test" > test

    git add .

    git commit -m "adding test"

    git push origin:test

  3. 在 github/bitbucket 上,将默认分支更改为新分支

  4. 在本地,切换到主分支,提交并推送到远程仓库/分支

    git checkout -b master

    git push origin --mirror

于 2016-09-05T07:42:33.190 回答
0

我不是 github 生态系统的专家,但你为什么不能重置你的远程存储库 url?

git remote set-url origin /path/to/your/new/remote/repository/url

您可能还需要通过查看此处来配置您的上游分支。

更多信息git remote...,请看这里

于 2017-06-27T14:46:20.920 回答