Useful git commands and workflow.
For a good workflow with branches, see this article.
Use emojis to categorize the commit.
:tada: | When you added a cool new feature.:wrench: | When you tweaked some parameters.:recycle: | When you refactored a part of the code.:sparkles: | When you applied a linter.:globe_with_meridians: | When you worked on translations.:art: | When you improved / added grahics assets like themes.:lipstick: | When you worked on the UI.:rocket: | When you improved performance.:memo: | When you wrote documentation.:beetle: | When you fixed a bug.:revolving_hearts: | When a new sponsor / contributor is added or credits are updated.:heavy_check_mark: | When you worked on checks or adjusted the code to be compliant with them.:twisted_rightwards_arrows: | When you merged a branch.:fire: | When you removed something.:truck: | When you moved / renamed something.Thanks for Desktop-Cube author for the idea.
git config --global user.email "contact@jovian-hersemeule.eu"
git config --global user.name "DricomDragon"
git config --global core.editor "vim"
git config --global push.followTags true
git config --global diff.tool vimdiff
You can replace --global by --local to configure a specific project.
git status -s
git diff for difference against unstaged files
git diff --staged or git diff --cached for difference against staged files
git rm --cached <file> remove a file from git but keep this file on drive
git stash -u -m 'Experiment optimized code
-u is used to stash untracked files
git difftool use a tool like vimdiff
git difftool --tool-help see availble git diff tools
See config for setting his own git tool for diff.
git commit -v see diff while committing
git log -p see diff for every commit
git log --graph see branches history
git log --stat see numbers of modifs on each file for every commit
git remote show <remote_name> show useful information about remote
git push --delete <remote_name> <branch_name> delete a remote branch
git diff dev --numstat | cut -f 3 | sed -e 's/{.* => \(.*\)}/\1/g' show every modified files since dev
grep -e 'TODO' (git diff dev --numstat | cut -f 3 | sed -e 's/{.* => \(.*\)}/\1/g') show every TODO in modified files
vim (git diff dev --numstat | cut -f 3 | sed -e 's/{.* => \(.*\)}/\1/g') open every file in your text editor
Open-source cross-platform Git GUI
https://gitahead.github.io/gitahead.com/
Tools > Config
You can disable fetch every 10 min for instance.
Use same config file as GitBash.
Use in gitbash : git config --global core.excludesfile '~/.gitignore'
Do not forget to copy your .gitignore at the right place.