here is a procedure to change permissions in Windows and or Linux. Of course, in Linux it picks it up when you add the file for commit
git ls-tree HEAD – the first column is the permission in the index. You have to commit before the index is actually updated.
C:\Users\jonallen\Documents\github\weather_obs>git ls-tree HEAD 100644 blob bc24e36afc3ccfa261f3f1bfd16de59c6059b72b KDCA.xml 100644 blob 5998e23e67758e0cf3681c079437f91c8ece445e LICENSE 100644 blob f030b2848eb118d7f2d340fefff3f1a44c32c5f4 README.md 100755 blob 49ce3b29457640658623e04a12fa95130d473a0a daily_weather_obs_chart.py 100644 blob 510d2e8a04720e80edaa0aa0810c9c287c142035 date_from_obs.py 100644 blob c44f2d94ff349f6fcf17dd8bcd61ef7ef51e18a2 get_noaa_sites.py 100644 blob 9244aff69514f5f1c5d9f051c3c7b59359168b0d lambda_handler.py 100644 blob 0865ae05c64ed256f796d75092e41153770de1c7 my_obs.txt 100644 blob a86998acf6c2ceac23d77cdbea42078dbd638fd8 noaa_duplicates.py 100755 blob 71046c12693393c31709c58b0b260a7f4ac5f85c noaa_tidal_potomac.py 100644 blob 9f7193d90758e855c57aeb78029dd7d7d1ed4cf3 noaa_tide_chart_puller.py 100644 blob cb47c85479ee36fd4e14deaa183062510d442204 obs_csv.py 100644 blob 98e1cc5e485d2bd70d89d09c146df43ce2cc8e7d obs_utils.py 100644 blob 7efb2534833932b2d0b35d338530e8ae1a8d87dd obstest.py 100644 blob a74d1c16cb412d5921ea67741d80e2cfd3b78c75 requirements.txt 100755 blob 53f5fdfbe52acc6b0997bcfff2bed874fd63f1cc resume.sh 100644 blob d66512ad5b0febf4616f6d2fc8f634e451fdfd1a sanity.py 100644 blob 6eb9aeba1c31e4ec4a1e6dedb8b6d4ccd143bc5f states_abbr.txt 100644 blob b996baac2e436ff435ab2e329710dfe9a8399171 states_db.csv 100755 blob 843f52b758420817f015d3bc6f71862a992610d2 weather_obs.py C:\Users\jonallen\Documents\github\weather_obs>git update-index --chmod 755 noaa_duplicates.py error: option 'chmod' expects "+x" or "-x" C:\Users\jonallen\Documents\github\weather_obs>git update-index --chmod +x noaa_duplicates.py C:\Users\jonallen\Documents\github\weather_obs>git ls-tree HEAD 100644 blob bc24e36afc3ccfa261f3f1bfd16de59c6059b72b KDCA.xml 100644 blob 5998e23e67758e0cf3681c079437f91c8ece445e LICENSE 100644 blob f030b2848eb118d7f2d340fefff3f1a44c32c5f4 README.md 100755 blob 49ce3b29457640658623e04a12fa95130d473a0a daily_weather_obs_chart.py 100644 blob 510d2e8a04720e80edaa0aa0810c9c287c142035 date_from_obs.py 100644 blob c44f2d94ff349f6fcf17dd8bcd61ef7ef51e18a2 get_noaa_sites.py 100644 blob 9244aff69514f5f1c5d9f051c3c7b59359168b0d lambda_handler.py 100644 blob 0865ae05c64ed256f796d75092e41153770de1c7 my_obs.txt 100644 blob a86998acf6c2ceac23d77cdbea42078dbd638fd8 noaa_duplicates.py 100755 blob 71046c12693393c31709c58b0b260a7f4ac5f85c noaa_tidal_potomac.py 100644 blob 9f7193d90758e855c57aeb78029dd7d7d1ed4cf3 noaa_tide_chart_puller.py 100644 blob cb47c85479ee36fd4e14deaa183062510d442204 obs_csv.py 100644 blob 98e1cc5e485d2bd70d89d09c146df43ce2cc8e7d obs_utils.py 100644 blob 7efb2534833932b2d0b35d338530e8ae1a8d87dd obstest.py 100644 blob a74d1c16cb412d5921ea67741d80e2cfd3b78c75 requirements.txt 100755 blob 53f5fdfbe52acc6b0997bcfff2bed874fd63f1cc resume.sh 100644 blob d66512ad5b0febf4616f6d2fc8f634e451fdfd1a sanity.py 100644 blob 6eb9aeba1c31e4ec4a1e6dedb8b6d4ccd143bc5f states_abbr.txt 100644 blob b996baac2e436ff435ab2e329710dfe9a8399171 states_db.csv C:\Users\jonallen\Documents\github\weather_obs>git commit -m "changed permission" 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 noaa_duplicates.py mode change 100644 => 100755 noaa_tide_chart_puller.py mode change 100644 => 100755 obs_csv.py C:\Users\jonallen\Documents\github\weather_obs>git ls-tree HEAD 100644 blob bc24e36afc3ccfa261f3f1bfd16de59c6059b72b KDCA.xml 100644 blob 5998e23e67758e0cf3681c079437f91c8ece445e LICENSE 100644 blob f030b2848eb118d7f2d340fefff3f1a44c32c5f4 README.md 100755 blob 49ce3b29457640658623e04a12fa95130d473a0a daily_weather_obs_chart.py 100644 blob 510d2e8a04720e80edaa0aa0810c9c287c142035 date_from_obs.py 100644 blob c44f2d94ff349f6fcf17dd8bcd61ef7ef51e18a2 get_noaa_sites.py 100644 blob 9244aff69514f5f1c5d9f051c3c7b59359168b0d lambda_handler.py 100644 blob 0865ae05c64ed256f796d75092e41153770de1c7 my_obs.txt 100755 blob a86998acf6c2ceac23d77cdbea42078dbd638fd8 noaa_duplicates.py 100755 blob 71046c12693393c31709c58b0b260a7f4ac5f85c noaa_tidal_potomac.py 100755 blob 9f7193d90758e855c57aeb78029dd7d7d1ed4cf3 noaa_tide_chart_puller.py 100755 blob cb47c85479ee36fd4e14deaa183062510d442204 obs_csv.py 100644 blob 98e1cc5e485d2bd70d89d09c146df43ce2cc8e7d obs_utils.py 100644 blob 7efb2534833932b2d0b35d338530e8ae1a8d87dd obstest.py 100644 blob a74d1c16cb412d5921ea67741d80e2cfd3b78c75 requirements.txt 100755 blob 53f5fdfbe52acc6b0997bcfff2bed874fd63f1cc resume.sh 100644 blob d66512ad5b0febf4616f6d2fc8f634e451fdfd1a sanity.py 100644 blob 6eb9aeba1c31e4ec4a1e6dedb8b6d4ccd143bc5f states_abbr.txt 100644 blob b996baac2e436ff435ab2e329710dfe9a8399171 states_db.csv 100755 blob 843f52b758420817f015d3bc6f71862a992610d2 weather_obs.py