【问题标题】:Completely replacing GitHub repo, branches and commits完全替换 GitHub 存储库、分支和提交
【发布时间】:2015-04-03 06:18:53
【问题描述】:

我在 GitHub 有一个项目,有 11 个分支。在我使用其中一种技术的更高版本重建项目时,必须保持原样。

我在私有 BitBucket 存储库中重建了项目。这也有 11 个分支,以及完全不同的提交历史。

我已经镜像了原始的 GitHub 存储库,因此仍然可以公开访问“旧”代码。下一步是清除原始 GitHub 存储库的内容,并替换为来自 BitBucket 存储库的内容。

我不想删除/重命名 GitHub 存储库,因为有一些观察者和明星 - 这些人应该获得最新版本的代码。

所以问题是:如何删除 GitHub 存储库的分支和内容,并替换为另一个分支、内容和历史记录?

理想情况下,BitBucket 版本是staging 远程版本,GitHub 版本是origin

【问题讨论】:

    标签: git github


    【解决方案1】:

    我自己没有测试过这个,但是根据git push docs,你应该使用--mirror标志。

    git push --mirror <name of github remote>
    

    更新:我刚刚对其进行了测试,它似乎可以按预期工作。它将强制您的远程看起来与您的本地存储库完全一样,包括删除/添加分支和标签以及强制更新分支。

    【讨论】:

    • 是的。我有一个只有ReadMe.md 的 github 存储库。我将自述文件复制到我的本地仓库(在 cmd 行中作为新的颤振应用程序启动)。在 VStudio 终端(在 Windows 上)中做了一个git init。单击版本控制上的 V,并提交所有文件的“第一次”。在终端中,git remote add origin https://github.com/myAccount/myProjectgit push --mirror 没有参数。像魅力一样工作。但是问题:当我使用 vscode 推送时,我得到了"Can't push refs to remote. Try running 'Pull' first, to integrate your changes'.,我做了git push -f --all,一切正常,一切正常。
    【解决方案2】:

    如果我理解正确,您可以使用强制推送来替换 GitHub 存储库的内容。

    git push -f
    

    【讨论】:

    • 这不会替换所有分支和标签。
    猜你喜欢
    • 2017-04-03
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2021-08-30
    • 2012-03-26
    • 2013-09-26
    相关资源
    最近更新 更多