Skip to content
Snippets Groups Projects
Commit d516db9e authored by Achilleas Pipinellis's avatar Achilleas Pipinellis
Browse files

First draft on Git tricks tutorial

[ci skip]
parent 42e0e357
No related branches found
No related tags found
No related merge requests found
Based on https://gitlab.com/gitlab-org/gitlab-ce/issues/5986 here is an outline.
---
A pack of Git tricks that will leverage your Git-fu.
## Introduction
## Oh-my-zsh Git plugin
- https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
- https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh
## Git extras
Enhance Git with more commands
- https://github.com/tj/git-extras
## Aliases
```ini
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
lol = log --graph --decorate --pretty=oneline --abbrev-commit
```
## `.gitconfig` on steroids
- https://github.com/thoughtbot/dotfiles/blob/master/gitconfig
- https://github.com/thoughtbot/dotfiles/pull/377
---
1. Set a global `.gitignore`:
```ini
[core]
excludesfile = /home/user/.gitignore
```
1. Delete local branches that have been removed from remote on fetch/pull:
```ini
[fetch]
prune = true
```
1. Gives you extra info when using Git submodules:
```ini
[status]
submodulesummary = 1
```
## Misc
1. Get a list of Git branches, ordered by most recent commit:
```
git for-each-ref --sort=-committerdate refs/heads/
```
1. `@` is the same as `HEAD`:
```
git show @~3
```
1. `-` refers to the branch you were on before the current one.
Use it to checkout the previous branch ([source][dash]):
```sh
% git branch
master
* rs-zenmode-refactor
% git checkout master
% git checkout -
```
1. Delete local branches which have already been merged into master
([source][del-merged]):
```
git branch --merged master | grep -v "master" | xargs -n 1 git branch -d
```
1. Delete all stale tracking branches for a remote:
```
git remote prune origin
```
[del-merged]: http://stevenharman.net/git-clean-delete-already-merged-branches
[dash]: https://twitter.com/holman/status/530490167522779137
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment