A simple shell configuration compatible for macOS & Linux.
- Usefull aliases for common & git commands described and listed below
- A simple configuration for
vim
andnano
with syntax coloration - A sweet configuration for your teminal including
ZSH
withoh-my-zsh
and some really nice packages (see below)
- Unix-like operating system (macOS or Linux)
- ZSH should be installed. If not pre-installed (
zsh --version
to confirm), check the following instruction here: Installing ZSH git
,vim
andcurl
should be installed
git clone https://github.com/Carmain/shell-configuration.git
cd shell-configuration
bash install.sh
After 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 visited
This function is used to:
- From a
git
branch 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 develop
This 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 5
Start 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 impact
can 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-history
must be used with a file as argument. For example:git file-history home.html
find-by-message
must 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 |