views:

63

answers:

2

I do the following string of commands for git and my fingers are getting tired of typing them. :)

git add .
git commit -m 'Some message'
git push
cap deploy

How can I combine those (including adding a message) into a single command, like "git booyah" or something?

+3  A: 

You could define a git alias calling a script

Since version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!".
Starting with version 1.5.3, git supports appending the arguments to commands prefixed with "!", too.

Be defining a function within your alias, you can avoid the explicit call to 'sh -c'

[alias]
        publish = "!f() { git add . ; git commit -m \"$1\" ; git push ; cap deploy ; }; f"

or, after the suggestion of Pod in his answer:

[alias]
        publish = "!f() { git commit -a -m \"$1\" ; git push ; cap deploy ; }; f"

(to be tested)

VonC
Be careful with those double-quotes. When I tried this example, !f expanded to the last 'find' command that I had run in my bash history. Still pointed me in the right direction, though.
nocash
+2  A: 

This is not an answer to your question (my answer would be: make a bash/batch script).

I say this: Don't do git add . This will add every change and all untracked files in the current directory and it's descendants. You might not want these untracked files in your directory and you'll accidently add them, especially if you're typing ti as much as you claim you are.

Instead do git add -u. Even better, skip the add stage and do git commit -a -m"blah", which saves you an entire line, which is apparently something you are keen to avoid.

Pod