git: re-checkout files after creating smudge filter

后端 未结 2 1433
清歌不尽
清歌不尽 2020-12-01 08:53

Situation: I\'ve just cloned a git repo, and then I configure the smudge filter for the repo. There are .gitattributes files scattered around the repo that spec

2条回答
  •  抹茶落季
    2020-12-01 09:19

    You can remove the Git index and let Git rescan it to aware the changes. Then you can checkout all the files which have a smudge filter on them.

    # remove Git index
    rm .git/index
    
    # rescan index
    git reset HEAD -- .
    
    # checkout all the files which have a smudge filter on them
    git ls-files --modified | grep -v .gitattributes | awk '{print "git checkout HEAD -- \""$1"\""}' | bash
    

    Note: Save your uncommitted changes before the re-checkout, otherwise, all your modifications on those smudge-filter-applied files will be overridden.

提交回复
热议问题