A simple shell configuration compatible for macOS & Linux.
- Usefull aliases for common & git commands described and listed below
- A simple configuration for
vimandnanowith syntax coloration - A sweet configuration for your teminal including
ZSHwithoh-my-zshand some really nice packages (see below)
- Unix-like operating system (macOS or Linux)
- ZSH should be installed. If not pre-installed (
zsh --versionto confirm), check the following instruction here: Installing ZSH git,vimandcurlshould be installed
git clone https://github.com/Carmain/shell-configuration.git
cd shell-configuration
bash install.shAfter that, close all the shells instances and reopen a new one
If nothing changed, try the command antigen reset & reload the shell again. If the problem isn't fixed, delete the .zcompdump file (in ~) and reload again.
The project have a nice custom theme defined inside the .zshrc
| Symbol | Meaning |
|---|---|
✔ |
Repository clean |
✚ |
Changes ready to be committed |
⚑ |
Tracked file(s) modified |
✖ |
Tracked file(s) deleted |
» |
Tracked file(s) renamed |
§ |
Branch unmerged |
◒ |
File(s) untracked |
$ |
Content stashed |
< |
Branch behind upstream |
> |
Branch ahead upstream |
- web-search (aliases for searching with Google, Wiki, Bing, YouTube and other popular services)
- colored-man-pages (color the man pages for a better reading)
- zsh-syntax-highlighting (syntax highlighting bundle)
- zsh-autosuggestions (fish-like auto suggestions)
- zsh-completions (extra ZSH completions)
Return on the last git branch visited
$ git:(develop) git checkout feature/cool-stuffs
$ git:(feature/cool-stuffs) gckl
$ git:(develop) # Do your stuff here
$ git:(develop) gckl
$ git:(feature/cool-stuffs) # Go back to the last branch visitedThis function is used to:
- From a
gitbranch go back to develop - Pull develop
- Return into the last branch visited
- Merge develop into this branch
$ git:(feature/fake-branch) sync_with_dev
Switched to branch 'develop'
Your branch is up to date with 'origin/develop'.
Already up to date. # Or get all the modifications applied to your local branch
Switched to branch 'feature/fake-branch'
Already up to date. # Or get all the modifications applied to your local branch from developThis function is used to:
- From a branch go back to develop
- Pull develop
- Return into the last branch visited
- Merge this branch into develop
Usefull when you work with merge request to clean your local git
Shortcut for git rebase -i HEAD~<X> where <X> is passed as argument
$ git:(feature/fake-branch) grbx 5Start the command with git or g (example: git st)
| Shortcut | Explanation |
|---|---|
| a | add |
| all | Add all unstaged files |
| amend | commit --amend |
| bnm | branch --no-merged |
| br | branch |
| brm | branch -D |
| cached | diff --cached |
| ci | commit |
| ck | checkout |
| ckb | checkout -b |
| cp | cherry-pick |
| d | diff |
| file-history | Display the history of the file (see the note below) |
| find-by-message | Filter the commits by message (see the note below) |
| hard-reset | Rollback the last commit and loss his modifications |
| impact | Show the impact (see the note below) |
| lg | A pretty log |
| lgd | log -p |
| out-all | Rollback all unstaged modifications |
| soft-reset | Rollback the last commit but keep the modifications |
| st | status |
| tag-date | Show the 10 last tag sorted by date |
| tree | A tree view of the git |
| puf | push --force-with-lease |
| rb | rebase |
| rba | rebase --abort |
| rbc | rebase --continue |
| rbi | rebase -i |
| rbm | rebase master |
Note:
- The command
git impactcan be used like that to show the difference of the unstaged modifications with the last commit or with a branch name as argument to see the difference by files between the current branch and the other. For example:git impact master - The command
git file-historymust be used with a file as argument. For example:git file-history home.html find-by-messagemust be used with a string as argument. For example:git find-by-message Merge tag. Be carefull, the command is case-sensitive !
Rules:
- All the aliases start with
g - The aliases have at least three letters and maximum four
| Git original command | Alias |
|---|---|
| git | g |
| git add | gad |
| git add . | gall |
| git amend | gcam |
| git bnm | gbnm |
| git br | gbr |
| git brm | gbrm |
| git cached | gch |
| git checkout | gck |
| git cherry-pick | gcp |
| git checkout develop | gckd |
| git checkout master | gckm |
| git commit | gci |
| git commit -m | gcim |
| git lg | glg |
| git diff | gdi |
| git push | gpu |
| git status | gst |
| git rebase | grb |
| git rebase -i | grbi |
| git rebase master | grbm |
| git rebase --continue | grc |
| git rebase --abort | gra |
For some aliases like brn or bnm, see the section about the .gitconfig file
Rules:
- All the aliases start with
gf - The aliases always have one letter by word (the first of each words)
| Git flow original command | Alias |
|---|---|
| git flow | gf |
| git flow feature | gff |
| git flow feature start | gffs |
| git flow feature publish | gffp |
| git flow feature finish | gfff |
| git flow hotfix | gfh |
| git flow hotfix start | gfhs |
| git flow hotfix publish | gfhp |
| git flow hotfix finish | gfhf |
| git flow release | gfr |
| git flow release start | gfrs |
| git flow release publish | gfrp |
| git flow release finish | gfrf |
| Original command | Alias |
|---|---|
| cd ../ | .. |
| cd ../../ | ... |
| cd ../../../ | .... |
| ls --color=auto | ls |
| ls -l --color=auto | ll |
| ls -ahl --color=auto | lahl |
| ls -d .* --color=auto | l. |
| grep --color=auto | grep |
| egrep --color=auto | egrep |
| fgrep --color=auto | fgrep |
| history | h |
| python | py |
| pip | pi |
| python3 | py3 |
| pip3 | pi3 |