【发布时间】:2020-09-20 19:08:59
【问题描述】:
我有一个带有凭据等的远程私有 Django 存储库,我想要一个公共存储库。当我将本地公众推送为新分支时,我也在推送我之前的所有私人提交。如何在没有以前提交历史的情况下将本地公共分支推送到远程?
【问题讨论】:
-
找了一天终于找到了我要找的东西: git checkout --orphan public
# 创建一个没有父历史的新分支
标签: git
我有一个带有凭据等的远程私有 Django 存储库,我想要一个公共存储库。当我将本地公众推送为新分支时,我也在推送我之前的所有私人提交。如何在没有以前提交历史的情况下将本地公共分支推送到远程?
【问题讨论】:
标签: git
尝试以下命令:
$ git push <remote name> <commit hash>:<remote branch name>
例如,它可能如下所示:
$ git push origin 2dc2b7e123e6b712ef324eqqc81050b9693395a4:master
备注:这将push 所有提交,包括这个指定的提交!这意味着,如果您指定 位于分支顶部 的提交,它将推送所有内容,与常规推送完全相同。您需要先重新排序您的提交,以确保您要推送的提交位于底部(直接在远程分支上方)。
如何排序提交,可以看这个question。
【讨论】:
执行此操作的一种简单方法是将存储库复制到新文件夹。删除该新文件夹中的 .git 文件夹以删除以前的提交历史记录,然后运行 git init 以创建新的存储库。
在此存储库中所做的任何提交都只能是您希望公开的内容,因此请注意不要提交任何私人凭据或文件。
【讨论】: