You can git clone <REPO> <DEST FOLDER>, no need to cd
maybeCreateDir is not used each time, there are some mkdir
"changes" is not a helpfull commit message. Accept an optional argument string and {MESSAGE:=change}
Accept a different repo path
set -euxo pipefail at the start of the script if you want to exit at any error. Some sort of bash strict mode
shellcheck does not like iterating over ls's output
I'm too lazy to open issues/PR for all that, and I still need to learn stow. Hopfully this might help me ? (I don't really need help with git that this sçript look to abstract too much for me.)