Well, question is quite clear. In which scenario should I use git --assume-unchanged or in what situation git rm -r --cached should be used?
Also, --skip-worktree is increasing the confusion.
Which is better to use with .gitignore?
Goal is to keep config files from getting pushed to github repo because there are often different settings on different deployment machines. Therefore, each machine would have their own config files.