从Git历史记录中删除文件夹内容(一组文件除外)

丹尼尔·马克斯

我希望从git历史记录中删除文件夹的内容(可以递归地包含文件夹)。但是,一些较旧的提交甚至没有该文件夹,而一些较新的提交在该文件夹中有我要保留的文件。

假设文件夹位于foo(在路径中/path/to/foo),并且要保留的文件称为bar1bar2(例如/path/to/foo/bar1)。

我意识到这个问题并不新鲜。这个问题中,使用了一个冗长且难以阅读的脚本(至少对于初学者而言)。这个问题是最新的并且使用了,git filter-branch但是我不明白解决方案最终是什么。最后,这个问题可能是最相似的,但是对于没有git的高级知识的人来说,答案并不是“解剖”的,因此,我没有信心尝试这些命令。

从我所看到的,git 2.17的当前方法是git filter-branch为每个分支使用然后使用tree-filterindex-filter(从文档中我看不到用例的区别)。最后是一个git rm带有正则表达式命令,命令与fooexcept的内容匹配bar正则表达式的第一部分可能很简单(/path/to/foo/*),但我不确定如何添加例外。

如果有人可以在提供解决此问题的命令时将其分解,我将不胜感激。

吉尔
git filter-branch --index-filter '
        dir=path/to/folder
        git rm -qr --cached --ignore-unmatch $dir
        git reset $GIT_COMMIT -- $dir/file1 $dir/file2 $dir/file3
'

索引过滤器和树过滤器之间的唯一区别是,树过滤器使用提交中的所有内容加载树,然后通过将树中的所有内容与索引中列出的内容进行比较来为您进行索引更新,并进行更新与新树内容匹配的索引。这很容易,只是速度很慢,通常是不必要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从git历史记录中删除已删除的文件夹

来自分类Dev

svn-获取在存储库根目录中创建的文件夹的历史记录

来自分类Dev

恢复SVN中已删除文件的历史记录

来自分类Dev

TFS删除文件的历史记录

来自分类Dev

从Git历史记录中删除文件而不删除文件

来自分类Dev

将文件以及git中的历史记录移动到其他文件夹

来自分类Dev

节点/文件夹删除历史记录-Adobe AEM / CQ

来自分类Dev

Git:从历史记录中删除文件,这些文件的名称类似于CLI选项

来自分类Dev

从所有git历史记录中删除文件

来自分类Dev

从Git历史记录中删除大文件

来自分类Dev

如何获取整个git历史记录的文件夹大小

来自分类Dev

从git历史记录中删除文件夹以减小存储库大小

来自分类Dev

合并由于提交的历史记录而删除文件夹

来自分类Dev

Git-从分支的历史记录中删除文件

来自分类Dev

GIT重命名文件夹历史记录

来自分类Dev

在文件资源管理器中打开的文件夹的历史记录

来自分类Dev

从git历史记录中删除已删除的文件夹

来自分类Dev

svn-获取在存储库根目录中创建的文件夹的历史记录

来自分类Dev

从Bash历史记录文件中删除某行

来自分类Dev

如何将文件从一个文件夹移动到同一git存储库中的保留历史记录的另一个文件夹

来自分类Dev

如何将文件从一个文件夹移动到同一git存储库中的保留历史记录的另一个文件夹

来自分类Dev

如何删除文件夹及其所有历史记录

来自分类Dev

将文件以及git中的历史记录移动到其他文件夹

来自分类Dev

Git:从历史记录中删除文件,这些文件的名称类似于CLI选项

来自分类Dev

从 git 历史记录中删除文件的某些内容

来自分类Dev

git 将文件夹向下移动一级并维护历史记录

来自分类Dev

缺少删除文件历史记录中的行 (git)

来自分类Dev

如何清除文件历史记录中的“备份这些文件夹”列表?

来自分类Dev

从 git 历史记录中永久删除文件

Related 相关文章

  1. 1

    从git历史记录中删除已删除的文件夹

  2. 2

    svn-获取在存储库根目录中创建的文件夹的历史记录

  3. 3

    恢复SVN中已删除文件的历史记录

  4. 4

    TFS删除文件的历史记录

  5. 5

    从Git历史记录中删除文件而不删除文件

  6. 6

    将文件以及git中的历史记录移动到其他文件夹

  7. 7

    节点/文件夹删除历史记录-Adobe AEM / CQ

  8. 8

    Git:从历史记录中删除文件,这些文件的名称类似于CLI选项

  9. 9

    从所有git历史记录中删除文件

  10. 10

    从Git历史记录中删除大文件

  11. 11

    如何获取整个git历史记录的文件夹大小

  12. 12

    从git历史记录中删除文件夹以减小存储库大小

  13. 13

    合并由于提交的历史记录而删除文件夹

  14. 14

    Git-从分支的历史记录中删除文件

  15. 15

    GIT重命名文件夹历史记录

  16. 16

    在文件资源管理器中打开的文件夹的历史记录

  17. 17

    从git历史记录中删除已删除的文件夹

  18. 18

    svn-获取在存储库根目录中创建的文件夹的历史记录

  19. 19

    从Bash历史记录文件中删除某行

  20. 20

    如何将文件从一个文件夹移动到同一git存储库中的保留历史记录的另一个文件夹

  21. 21

    如何将文件从一个文件夹移动到同一git存储库中的保留历史记录的另一个文件夹

  22. 22

    如何删除文件夹及其所有历史记录

  23. 23

    将文件以及git中的历史记录移动到其他文件夹

  24. 24

    Git:从历史记录中删除文件,这些文件的名称类似于CLI选项

  25. 25

    从 git 历史记录中删除文件的某些内容

  26. 26

    git 将文件夹向下移动一级并维护历史记录

  27. 27

    缺少删除文件历史记录中的行 (git)

  28. 28

    如何清除文件历史记录中的“备份这些文件夹”列表?

  29. 29

    从 git 历史记录中永久删除文件

热门标签

归档