I need to work on
Actually, you want
--assume-unchanged. Here's a good explanation why.
git update-index --skip-worktree file.txt
--assume-unchanged is for performance, for files that won't change (like SDKs);
--skip-worktree is for files that exist on remote but that you want to make local (untracked) changes to.