【问题标题】:Pushing to public repo without previous commits在没有先前提交的情况下推送到公共回购
【发布时间】:2020-09-20 19:08:59
【问题描述】:

我有一个带有凭据等的远程私有 Django 存储库,我想要一个公共存储库。当我将本地公众推送为新分支时,我也在推送我之前的所有私人提交。如何在没有以前提交历史的情况下将本地公共分支推送到远程?

【问题讨论】:

  • 找了一天终于找到了我要找的东西: git checkout --orphan public # 创建一个没有父历史的新分支

标签: git


【解决方案1】:

尝试以下命令:

$ git push <remote name> <commit hash>:<remote branch name>

例如,它可能如下所示:

$ git push origin 2dc2b7e123e6b712ef324eqqc81050b9693395a4:master

备注:这将push 所有提交,包括这个指定的提交!这意味着,如果您指定 位于分支顶部 的提交,它将推送所有内容,与常规推送完全相同。您需要先重新排序您的提交,以确保您要推送的提交位于底部(直接在远程分支上方)。 如何排序提交,可以看这个question。

【讨论】:

    【解决方案2】:

    执行此操作的一种简单方法是将存储库复制到新文件夹。删除该新文件夹中的 .git 文件夹以删除以前的提交历史记录,然后运行 ​​git init 以创建新的存储库。

    在此存储库中所做的任何提交都只能是您希望公开的内容,因此请注意不要提交任何私人凭据或文件。

    【讨论】:

    • 我试过了,但正如你所说,我看到我的 git 被复制了。如果删除新文件夹中的 .git 文件夹是否会影响我在原始文件夹中的 git 历史记录?
    猜你喜欢
    • 2011-06-22
    • 2022-11-24
    • 2019-09-27
    • 2011-11-16
    • 2021-10-19
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多