git add .
git commit -am "descriptive name"
git push
to: git sync "descriptive name"
It's a pretty terrible habit to get into, and will (not can - will) cause all sorts of headaches. From minor ones like personal editor configs getting dumped into the projects, all the way up to major ones like secrets ending up in your git history.
If you want something close, but much better, do something like:
if [[ -n $(git ls-files --others --exclude-standard) ]]; then
echo "There are untracked files. Please add, remove, or ignore them."
else
git commit -am "descriptive name"
git push
fi
Here are my stats for my last 300 or so git commands from my history
$ history | grep git | awk '{print $3}' | sort | uniq -c | sort -rn
71 log
44 show
34 diff
26 co # alias for checkout
24 cherry-pick
23 status
18 brs # alias for branch -v --sort=-committerdate
13 rebase
11 commit
11 add
8 push
4 archive
3 reset
2 pull
1 grep
1 checkout
1 br
Been doing lots of tricky merges recently hence all the cherry-picks! Not normally such a large part of my workflow.I also like to separate fetch from pull (fetch + merge).
Oh and maybe cherry-pick
two other git log commands i find to be insanely useful are:
alias hlog='git log --date-order --graph --date=short --format="%C(green)%h%Creset %C(yellow)%an%Creset %C(blue bold)%ad%Creset %C(red bold)%d%Creset%s"'
and:
alias alog='git log --date-order --all --graph --date=short --format="%C(green)%h%Creset %C(yellow)%an%Creset %C(blue bold)%ad%Creset %C(red bold)%d%Creset%s"'
this is great when working in a repo w/a main "prod" branch that you don't commit to directly, but instead commit to "staging" or "dev". alog shows you the entire repo's history for all branches, and hlog is just the graph of the non-pushable branches (plus all feature branches).
epmatsw•12h ago