Script Bash que rebase el repository Git

Estoy tratando de encontrar una manera de volver a establecer la base del repository mediante el uso de Bash Script, lo obtuve, pero devolvió muchos errores que no sé cómo solucionarlos, por ejemplo: ./bash.sh: line 3: $'\r': command not found

Errores:

 ./bash.sh: line 3: $'\r': command not found ./bash.sh: line 6: $'\r': command not found Updating Repo: /home/teste/ with url: ./bash.sh: line 8: $'\r': command not found ./bash.sh: line 16: syntax error near unexpected token `$'\r'' '/bash.sh: line 16: `(git fetch --all && git stash) 

Aquí está el guión que obtuve

 directory="/home/teste/" ## Where the server is located original_dir="/root" ## Where we should back after the pull cd $directory # switch to the git repo repo_url=$(git config --get remote.origin.url) echo "Updating Repo: $directory with url: $repo_url" main_branch="master" if [ "$repo_url" == "XXXXX" ]; then # if you have a repo where the primary branch isnt master $main_branch="trunk" fi # update the repo, then stash any local changes echo -e "\ncalling: git fetch --all && git stash" (git fetch --all && git stash) current_branch=$(git rev-parse --abbrev-ref HEAD) # switch to master/trunk branch and rebase it, then switch back to original branch if [ $current_branch != $main_branch ]; then echo -e "\ncalling: git checkout $main_branch && git rebase && git checkout $current_branch" (git checkout $main_branch && git rebase && git checkout $current_branch) fi # rebase the original branch and then stash pop back to original state echo -e "\ncalling: git rebase && git stash pop on branch: $current_branch" (git rebase && git stash pop ) #switch back to the starting directory cd $original_dir echo "" 

Es la encoding de su file, no el script en sí mismo: los retornos de carro de Windows son diferentes al formatting de Unix. Si está utilizando un editor de GUI, cambie las terminaciones de línea al formatting 'unix' o 'win' dependiendo de su sistema operativo.

También hay una herramienta llamada dos2unix que puedes ejecutar contra un file para convertir los finales de línea a formatting Unix (o viceversa unix2dos).

En su configuration de .gitattributes también puede establecer qué formatting desea. Esto se asegurará de que el código que revisa y confirma se trate en consecuencia en el futuro:

 text eol=crlf # unix 

O

 text eol=lf # windows 

Ver: https://help.github.com/articles/dealing-with-line-endings/

Consulte esta página para conocer otras forms de desollar a este gato. '\ r': command no encontrado – .bashrc / .bash_profile