The situation: I have a local git repository which is a clone of a remote repository. Suppose the repository is tracking (among others) two files, fileA and fileB.
After cloning the repository, I modify fileA and fileB locally, but I never stage or commit those changes.
Eventually, I will need to run git checkout --force origin/master on the local repository to fetch the newest version from the remote repository. Now all the changes I made locally (on files tracked in the remote repository) will be overwritten.
The problem: How can I configure the local repository to always keep changes I made to fileA, yet overwrite fileB? I basically want fileA to be ignored locally although it is a tracked file in the remote repository.
Adding fileA to .gitignore or .git/info/exclude did not work, probably because those two files only prevent files from added to tracking, not from being tracked once they are in the index.
git rm --cache fileA did not work either, since fileA is still in the index at origin and thus will be overwritten locally when I check out.
tl;dr: I want to instruct git to not touch certain files in my repository even though they are being tracked in a remote repository.