标签: git-filter-branch

  • 重整仓库

    1. 拆分子目录作为单独的仓库

    参照 : https://blog.csdn.net/wang252949/article/details/80003791

     1. git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter <path-name> -- --all
    
    

    2. 过滤某些目录,只保留部分目录

     1. git filter-branch  -f  --tree-filter  'rm -rf <dir-and-file-to-delete>'  -- --all
    
    

    多次运行,需要加上 -f 表示强制。

    3. 重命名

     1. git filter-branch  -f  --tree-filter  'mv <old-file> <new-file> || true'  -- --all
    
    

    4. 清理仓库

     1. (1)git reset --hard
     
     2. (2)git  for -each-ref --format= "%(refname)"  refs/original/ |xargs -n 1 git update-ref  -d 
     3. (3)git reflog expire --expire=now --all
     
     4. (4)git gc --aggressive --prune=now
     
     
     5.