重新应用整个历史的gitignore规则

时间:2018-03-04 20:06:25

标签: git

这是三个部分,这是一个比Make Git rebuild history using the current .gitignore

更为循序渐进的问题
  1. 我想知道是否有可能对历史中的某个早期点进行变基,并在其中设置.gitignore规则,使其一直到顶部。我的方式是git checkout KNOWN_COMMIT_WITH_PROPER_GITIGNORE .gitignore && git rebase --continue

  2. --preserve-merges https://stackoverflow.com/a/19757964/242042期间,为历史记录中的每次提交应用删除的已忽略文件。我认为这可以用git-filter-branch

  3. 的类似方式完成
  4. 创建一个可执行此操作的别名

  5. 关键是这需要基于可能随时间变化的.gitignore,我希望将.gitignore文件的特定版本应用于第一次提交并通过其余部分应用历史。

1 个答案:

答案 0 :(得分:0)

我认为您可以将'git filter-branch''git ls-files'结合使用。像这样:

git filter-branch --index-filter 'git rm --cached `git ls-files --exclude-standard -i`'

即,过滤分支并修改索引;对于每个提交列表,忽略索引中的文件并将其从索引中删除。

PS。但请在试验前进行备份。