In my case when I develop an application I use homestead, so I never have to bother about file permissions, then in production (e.g. AWS) I clone my project and I do have to setup them up.
What happens is this:
modified: bootstrap/cache/.gitignore
modified: storage/app/.gitignore
modified: storage/app/public/.gitignore
modified: storage/framework/.gitignore
modified: storage/framework/cache/.gitignore
modified: storage/framework/sessions/.gitignore
modified: storage/framework/testing/.gitignore
modified: storage/framework/views/.gitignore
modified: storage/logs/.gitignore
So if you don't want git to track the diff in your file permissions use this command:
$ git config core.filemode false
I do not know if this is a good practice, but it was the way that I found to not have that messy git status.