从git修订版中删除特定文件/文件夹
假设我发现有一些文件不应该出现在我的git版本中。例如密码、API密钥和商业秘密文件 有没有办法删除这些文件出现在修订版中的文件?并且仍然保留该版本中的其余文件?可能有用。这允许您重写一系列过去的提交,更改提交的内容 如果您所做的更改从未离开您的本地存储库,那么这将起作用。如果您将这些令人不快的更改推到了某个地方,或者有人将它们从您那里拉了出来,那么您将面临一个更大的问题,即在每个人的存储库中清除它们 但是,要修复本地存储库,请执行以下操作:从git修订版中删除特定文件/文件夹,git,Git,假设我发现有一些文件不应该出现在我的git版本中。例如密码、API密钥和商业秘密文件 有没有办法删除这些文件出现在修订版中的文件?并且仍然保留该版本中的其余文件?可能有用。这允许您重写一系列过去的提交,更改提交的内容 如果您所做的更改从未离开您的本地存储库,那么这将起作用。如果您将这些令人不快的更改推到了某个地方,或者有人将它们从您那里拉了出来,那么您将面临一个更大的问题,即在每个人的存储库中清除它们 但是,要修复本地存储库,请执行以下操作: git filter-branch --index-
git filter-branch --index-filter 'git rm --cached --ignore-unmatch bad-file1.txt bad-file2.txt' master..abc
这意味着:
:让我们重写一些提交git过滤器分支
:更改每个提交的索引,而不实际在磁盘上签出它--index filter
:对于每次提交,如果两个文件存在,请取消对它们的保存'git rm--cached--ignore unmatch bad-file1.txt bad-file2.txt'
:对分支abc上的所有提交执行此操作,并将其返回到从主分支分叉的位置。您也可以说“master..abc
”来重写过去的3次提交,或任何其他提交。您还可以使用“master~3
”(两个破折号,空格,两个破折号,“all”)重写存储库中的所有内容--all