First of all a bit of content about file extension: 
A filename extension is an identifier specified as a suffix to the
  name of a computer file. The extension indicates a characteristic of
  the file contents or its intended use. A file extension is typically
  delimited from the filename with a full stop (period), but in some
  systems it is separated with spaces.
Some file systems implement filename extensions as a feature of the
  file system itself and may limit the length and format of the
  extension, while others treat filename extensions as part of the
  filename without special distinction.
Filesystems for UNIX-like operating systems (opposed to DOS/Windows) do not separate the
  extension metadata from the rest of the file name. The dot character
  is just another character in the main filename, and filenames can have
  multiple extensions, usually representing nested transformations, ...
Regarding your shell scripts:
So basically in Unix file extension are not important/not mandatory so you can directly omit them. If for any reason you want to keep them (and I believe that you should) then you can define an alias to them. (refer to https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias)
You must also keep in mind the EOL char ('\n' vs '\r\n' that differ between Unix and Windows.  
Regarding your windows batches, you can not run them directly in a Unix like environment so you will not be able to run them at the same time from your git bash except if you use a tool like GH4W (github generate ssh key on windows) or use git-cmd.bat (What is the exact meaning of Git Bash?)