没有历史的git分支

Ben*_* K. 25 git branch

我的git repo包含敏感密码,由于我无法控制的原因,这些密码现在无法删除.现在一切都好,因为这个回购只是内部的,但我被要求创建一个可以安全地与合作伙伴共享的分支.

有没有办法在git中创建一个分支,然后以无法使用日志检索它们的方式从中删除文件?

看起来像是一个长镜头,但我想我会问.我能想到的唯一解决方案是将文件树复制到没有敏感文件的新git仓库 - 但是我失去了将伙伴更改合并回我的仓库的能力.

Gre*_*ill 28

您可以做的一件事是创建一个repo分支,编辑密码,然后创建一个您将给合作伙伴的存储库的浅层克隆(深度为1).他们可以制作补丁和针对该克隆的东西,但无法看到整个历史记录,也无法在其他任何地方推送回购.如果他们只是做出改变,那么这应该是一个可行的解决方案.您仍然可以接受来自它们的补丁并应用于主存储库.

有关详细信息,请参阅--depth选项git clone.

  • `git clone --depth 1 git@github.com:project/projectname.git` - 复制并粘贴 (4认同)

180*_*ION 5

使用filter-branch:

假设您要从所有提交中删除文件(包含机密信息或侵犯版权):

git filter-branch --tree-filter'rm filename'HEAD


小智 5

git clone --depth 1 url_of_your_remote_repository

浅存储库的局限性

  • 您无法从浅存储库中克隆或获取(这意味着您无法使用此浅副本创建新的存储库)

  • 您无法使用git log命令查看整个历史记录.

  • 它的可行解决方案,您的合作伙伴可以进行一些更改并将其作为"修补程序"并将其发送给您的合作伙伴,如果您希望更改合作伙伴.然后将这些修补程序应用于当前工作树/要应用的任何分支.

    更多