参考:
https://compiledsuccessfully.dev/git-skip-worktree/
https://stackoverflow.com/questions/9794931/keep-file-in-a-git-repo-but-dont-track-changes
在处理私人的config文件的时候,经常会遇到标题中的问题
保留初始版本是为了给一个模板,但是应用的时候却要换成自己的config
gitignore并不能很好的解决,如果先track了一个文件,之后才ignore的话,那么他的更改git还是会发现。
一个自然的想法就是先push上去,然后加入ignore, 在rm --cache。遗憾的是,这样也算做noTrack,再push到remote repo的时候config文件还是会消失。
所以只有在本地操作index-tree了。目前有两种解决方式,还不清楚哪种更合适。
git update-index --assume-unchanged FILENAME
git update-index --skip-worktree FILENAME
解除状态用对应的
--no-assume-unchanged
--no-skip-worktree