How to become a Git power user
Transcript of How to become a Git power user
![Page 1: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/1.jpg)
GIT POWER USERIlmari Kontulainen
@kontulai
@deveoteam
#gitpoweruser
Viimeksi muokattu: 9. Tammikuuta 2015Luottamuksellinen
![Page 2: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/2.jpg)
• Git Aliases
• Rewriting history
• Fast context switching
• Different merging strategies
Topics
![Page 3: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/3.jpg)
Git aliases
![Page 4: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/4.jpg)
• git config --global alias.co checkout
• git config --global alias.br branch
• git config --global alias.ci commit
• git config --global alias.st status
• git config --global alias.dc diff --cached
• git config --global alias.hist ‘log --graph --oneline --decorate --all’
• git config --global alias.unstage 'reset HEAD --'
• git config --global alias.last 'log -1 HEAD'
Git Aliases
![Page 5: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/5.jpg)
• git config --global alias.helloworld ‘!echo “Hello world”’
• git config --global alias.hello ‘!f() { echo Hello $1; }; f’
• git config --global alias.co-recurse '!sh -c “git checkout $1 && git submodule update --recursive" -'
Execute any shell command with aliases
![Page 6: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/6.jpg)
Rewriting history
![Page 7: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/7.jpg)
• git commit --amend
• git rebase
• git rebase -i
Rewriting history
![Page 8: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/8.jpg)
• Modify last commit
• Or simply edit the commit message
• Changes the commit commit
• Deveo prevents pushing changed history to master branch by default
git commit --amend
![Page 9: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/9.jpg)
• Base the work on my branch to some other branch
• creates new commits
git rebase
https://git-scm.com/book/en/v2/book/03-git-branching/images/basic-rebase-1.png
![Page 10: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/10.jpg)
git rebase
![Page 11: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/11.jpg)
git rebase
![Page 12: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/12.jpg)
git rebase -i
• Clean up the history of your feature branch
• pick
• squash, fixup
• drop
• edit or reword
![Page 13: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/13.jpg)
Fast context switching
![Page 14: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/14.jpg)
• git stash
• git stash --keep-index
• git stash --include-untracked
• git stash --all
• git stash --patch
Fast context switching
![Page 15: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/15.jpg)
Different merge strategies
![Page 16: How to become a Git power user](https://reader033.fdocuments.net/reader033/viewer/2022051101/5875440f1a28abb8208b5a81/html5/thumbnails/16.jpg)
• regular merge
• -- no-ff / --ff-only (Deveo uses --no-ff)
• --squash
• merging multiple branches into one
Different merging strategies