`bazel-git archive` regular files are `-rw-r--r--` rather than `-rw-rw-r--` that `git archive` does
Not sure where the g+w comes from in upstream.
go-git calculates the mode in FileMode#ToOSFileMode as 0644
git calculates it in canon_mode, which uses S_IFREG plus ce_permissions which results in either 0644.
git archive walks the entries and passes info->stat.st_mode to canon_mode, so one would expect 0644.
git archive does a bitwise OR with 0666 when calculating the final archive permissions in write_tar_entry.