Have you ever experienced the situation when you do ask your machine to do action ‘A’ and it does ‘B’? I bet everyone had. I personally had such today – let me share what I learned.
A computer always performs what you ask it to do.
Nothing more, nothing less. When you delete the files without confirmation (Shift + Del), they’ll be removed without confirmation – no, no backup. When you build your code, it won’t do the clean up before. You asked for build – not the rebuild. It performs exactly what you asked for. Computer never guesses 😉
And it punched me today. Again.
Git (and not only Git) has a lovely concept of ignoring specific files/folders you don’t want to track. The list of rejected files is built by yourself, unless you get the generated one – from GitHub for example.
In my RemotePairing app, for debug purposes, I added Debug controller to list all calendar events I have in the database. Here’s the effect.
Implementation has worked, I’m about to push it to remote and… Debug files are not displayed in git status. Gitignore filters them out – I thought.
But when I reached the file in Notepad++ and pressed Ctrl+F with ‘deb’ query – nothing was shown. No occurrences.
Maybe global .gitignore?
As it happens in the vast majority of circumstances, someone already had that problem. And Git since 2016 provides the great functionality of pointing which rule filters specific file/folder.
At first, I confirmed that file is cut by git ignore by command
git status --ignored
Then I could just call this command to check the rule behind this specific folder:
Line 16 of my gitignore! [Dd]ebug!
That’s another way of regular expressions that may hurt programmers 😉
So! The rule was there, I just failed to find it. But! Thanks to that I learned this cool feature of git today.