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

问题描述 投票:2回答:1

这是三个部分,这是一个比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. 创建一个可以执行此操作的别名

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

git
1个回答
0
投票

我想你可以把'git filter-branch''git ls-files'结合起来。像这样的东西:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.