til/Applications/Essential/git.md

73 lines
908 B
Markdown

# Git
## Config
Aliases:
```sh
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.df diff
git config --global alias.st status
git config --global alias.logo 'log --pretty=oneline'
```
Save usernames and passwords in `~/.git-credentials`:
```sh
git config --global credential.helper store
```
Use neovim when commit:
```sh
git config --global core.editor nvim
```
## Commands
Prefer rebase when pull:
```sh
git pull --rebase
```
Clean outdated branches:
```sh
git fetch --prune
```
Push force **safely**:
```sh
git push --force-with-lease
```
Rewrite history by changing last `x` commits :
```sh
git rebase -i HEAD~x
```
Squash last `x` commits to 1 commit:
```sh
git reset HEAD~x
git add -A
git commit
```
Cleanup unnecessary files:
```sh
git gc
```
Find common ancestor:
```sh
git merge-base A B
```