

Unsafe Rust code doesn’t turn off the borrow checker, it basically just allows you to play with pointers and call code that the compiler can’t (or can’t right now) statically assert is sound. IE if you roll your own Vtable the functions are safe to call, but the compiler can’t tell so you have to use unsafe

Git ignore doesn’t prevent things from being committed it just prevents them from being “tracked” (for lack of a better word) by default. If you manually explicitly add the file to a commit, and then commit the file will be tracked despite matching the ignore