【发布时间】:2018-12-18 20:41:27
【问题描述】:
我在本地做一个项目已经有一段时间了,终于到了我想把它上传到 GitHub 来分享的时候。该项目的早期版本包含硬编码的数据库密码,但我希望避免将其放在 GitHub 上。
有没有办法让我将 repo 的“浅”版本——只是现在的文件,没有历史记录——推送到 GitHub?像git clone --depth 1 这样的东西会很好,除了看起来你不能从本地主机“推送克隆”到 GitHub,而且 GitHub 似乎没有让我以正常方式“拉克隆”的界面。
我花了几个小时在网络上搜索“git push to github without history”、“git push to github as shallow clone”、“git push clone to github”等,但没有任何结果我可以破译与我的问题相关的内容。 GitHub docs 警告不要提交密码和东西,但他们给出的唯一建议是删除文件,而不是历史记录。同样,我在 Stack Overflow 上能找到的最接近的问题是 this question,其答案也集中在删除文件上。我不希望这样:我想保留文件,我只想删除它们曾经包含硬编码密码的历史记录。
理想情况下,我可以将项目从本地主机“浅推”到 GitHub,丢失以前的历史记录,但从那时起跟踪历史记录。这可能吗?
【问题讨论】:
-
git repos 固有地包含历史。唯一的方法是使用
git rebase重写历史记录。 -
您想在本地保存历史记录吗?您总是可以将所有内容压缩到一个提交中并使用它。
-
@Mobius 是的,我想在本地保存历史记录。