How can you gitignore items in a Drupal project without modifying core?
While .gitignore, .htaccess and robots.txt will come as part of the package when you clone Drupal, they should not be considered part of core and you should not feel that they cannot be changed or replaced with your own files.

This is what I do: Prior to updating (drush up), I make a backup of those three files.  After updating, I use the CLI program diff to compare the newly updated version with my backup (typically, my .gitignore have more entries at the end than those that come with Drupal).  If nothing else has changed, I just overwrite the one that came with Drupal with the backup.  If diff shows that the "drupal part" of .gitignore has changed, I copy those changes into my backup version before overwriting.  (Same procedure with .htaccess and robots.txt.)