如何在不包含历史记录的情况下推送到新的GitHub存储库?

时间:2018-12-18 20:41:28

标签: git github

我已经在本地进行了一段时间的项目,最后是要将其上传到GitHub进行共享的时候。但是,该项目的早期版本包含硬编码的数据库密码,但我希望避免将其放在GitHub上。

我是否有办法将“浅”版本的存储库(仅包含当前文件,没有历史记录)推送到GitHub?像git clone --depth 1这样的东西会很好,除了似乎您不能从本地主机“推送克隆”到GitHub,并且GitHub似乎没有让我以正常方式“推送克隆”的接口。

我已经花了几个小时在网络上搜索“无历史记录的git push to github”,“浅表克隆的git push到github”,“ git push clone到github”等,但是没有结果我可以认为与我的问题有关。 GitHub docs会警告您不要提交密码和密码,但是它们给出的唯一建议是删除文件,而不是历史记录。同样,我在堆栈溢出上能找到的最接近的问题是this question,其答案也集中在删除文件上。我不需要:我想保留文件,只想删除它们曾经包含硬编码密码的历史记录。

理想情况下,我可以将项目从localhost“浅推”到GitHub,丢失以前的历史记录,但从那时起跟踪历史记录。这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以做的一件事是将目录复制到新文件夹,然后删除您的.git目录。然后,您可以像初始化存储库一样对其进行初始化:

git init
git add .
git commit -m "Genesis."
git remote add origin <remote repository URL>
git push -u origin master

这样,如果您发现需要查找内容,可以将历史记录保存在另一个目录中。

答案 1 :(得分:1)

没有“浅推”之类的东西。有浅层 clones ,您可以创建浅层克隆然后推送到它,但是您不能将GitHub本身 host 变为浅层克隆。如果您可以让GitHub托管浅表克隆,则看起来您可以按照自己的方式做:我在自己的服务器上做了一个,并做了一些简单的实验,似乎很奏效(但我不是很彻底)。

我还测试了尝试从浅表克隆推送到新的空GitHub存储库。被拒绝了:

 ! [remote rejected] master -> master (shallow update not allowed)

因此,如果要使用GitHub,则必须创建一个新的(独立的和独立的)存储库。此新存储库与您现有的存储库不兼容。