Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I combine these git commands?

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?

like image 376
Shpigford Avatar asked Nov 04 '09 17:11

Shpigford


People also ask

What is git merge command?

Merging is Git's way of putting a forked history back together again. The git merge command lets you take the independent lines of development created by git branch and integrate them into a single branch.

How do I run multiple git commands?

Executing multiple commands is just a && away. You may want to break your command into multiple lines: Do so by wrapping your command into quotes and prepending every new line with a backslash.

Can I use git commands in cmd?

For Windows, when installing Git through the installer, it is recommended you select the “Use Git from the Windows Command Prompt” option. This will allow you to use all git commands through your terminal (CMD, PowerShell, Anaconda) rather than having to use Git's personal terminal, Git Bash.


3 Answers

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)

like image 191
VonC Avatar answered Oct 22 '22 16:10

VonC


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.

like image 41
Pod Avatar answered Oct 22 '22 16:10

Pod


You can also combine the frequent commands in one line:

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

Next time you just need the Up arrow to get it back, then push Enter

like image 7
Chetabahana Avatar answered Oct 22 '22 17:10

Chetabahana