Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git command to commit all changes including files removed or created

Tags:

git

github

After making changes to files already tracked by git I usually do a:

git commit -a -m "a message describing what you did"

followed by

git push origin master

to commit and then push all changes to my Github account. The first command however does not work for commiting files either added or removed. To do that I would have to first type:

git add -A

as mentioned here: How to commit and push all changes, including deletes?.

In this other question Git commit all files using single command the accepted answer indicates that the only way to apply the full commit (ie: including files added or removed, not only edited) and then the push is by combining them with the && command like so:

git add -A && git commit

which in my case would look like:

git add -A && git commit -a -m "a message describing what you did" && git push origin master

Now for the question(s): is this large command correct? Is there a way to create a new git command to apply these three commands all at once? Furthermore: is this merging of commands recommended or discouraged? If so, please state the reason.


Edit

I immediately regret this decision: Edit last pushed commit's message.

like image 923
Gabriel Avatar asked Nov 29 '13 13:11

Gabriel


2 Answers

Looks correct to me.

You could create an alias for the command by executing

git config --global alias.commitall '!func(){ git add -A && git commit -am "$1" && git push origin HEAD; }; func'

Then you could commit all changes by entering

git commitall "a message describing what you did"
like image 192
jacob1123 Avatar answered Sep 29 '22 18:09

jacob1123


Yeah. That large command is actually correct. It will allow you to commit everything inside a given directory in a repo, including newly created / untracked files.

Yes, you can create a new git command (actually, an alias) like this:

[alias]
acp = "!f(){ git add -A && git commit -am "$1" && git push origin master; };f"

The above alias must go inside your global git configuration (at ~/.gitconfig) under section labelled [alias]. Now, you can write something like: git acp <message> to run the above command.

Merging of commands is definitely recommended and is the power that *nix provides. However, in the current case, make sure that you actually want to perform all these actions in a single step. Git assumes that you want to selectively add your changes.

like image 21
Stoic Avatar answered Sep 29 '22 16:09

Stoic