我在本地开发一个项目已经有一段时间了,现在终于想把它上传到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,它的答案也集中在删除文件上。我想保留这些文件,我只想删除它们曾经包含硬编码密码的历史记录。
理想情况下,我可以将项目从localhost“浅推送”到GitHub,丢失以前的历史记录,但跟踪从那一点开始的历史记录。
3条答案
按热度按时间0s7z1bwu1#
你可以做的一件事就是把目录复制到一个新的文件夹中,并删除
.git
目录,然后你就可以像初始化仓库一样初始化它了:这样,如果您发现需要查找某些内容,就可以将历史记录保存在另一个目录中。
vxf3dgd42#
没有所谓的“浅推送”。有浅克隆,你可以创建一个浅克隆,然后推送到它,但是你不能让GitHub自己托管一个浅克隆。如果你能让GitHub托管一个浅克隆,看起来你可以用这种方式做你想做的事情:我在自己的服务器上做了一个,做了几个简单的实验,看起来很有效(但我不是很彻底)。
我还测试了从一个浅克隆推送到一个新的空GitHub仓库的操作,但被拒绝了:
因此,如果你想使用GitHub,你必须创建一个新的(独立的)仓库,这个新仓库与你现有的仓库不兼容。
yvt65v4c3#
为了补充@codenamev的答案,这对我很有效
在GitHub中,转到“设置”并将新上推分支设置为默认分支