git-configgit-alias

Is possible to write a multi-line alias in .gitconfig?


I know that is possible to use && (and) statement to go running multiple commands for a same alias. However for long combinations it loses in readability. For example:

save = !git status && git add -A && git commit -m \"$1\" && git push --force && git log && :

Is there a multi-line way to write it?

Maybe wrapping it with {} for example?


Solution

  • You can use a line escape (\) to break lines like this:

    [alias]
       save = !git status \
            && git add -A \
            && git commit -m \"$1\" \
            && git push -f \
            && git log -1 \
            && : # Used to distinguish last command from arguments
    

    You can also put multiple statements inside a function like this:

    [alias]
       save = "!f() { \
               git status; \
               git add -A; \
               git commit -m "$1"; \
               git push -f; \
               git log -1;  \
            }; \ 
            f;  \
            unset f" 
    

    See Also: Git Alias - Multiple Commands and Parameters