Autosquash makes it quicker and easier to squash or fixup commits during an interactive rebase. It can be enabled for each rebase using `git rebase -i --autosquash`, but it's easier to turn it on by default. Say I have this history: $ git log --oneline aaa1111 A first commit bbb2222 A second commit ccc3333 A third commit I make another change that I already know should be squashed into "A second commit". I can do this: $ git add . $ git commit --squash bbb2222 [my-branch ddd4444] squash! A second commit Then when I rebase: $ git rebase -i origin/my-branch The interactive rebase list will be set up ready to squash: pick aaa1111 A first commit pick bbb2222 A second commit squash ddd4444 squash! A second commit pick ccc3333 A third commit Since it's unlikely that anyone will be writing a commit message that begins `squash!` or `fixup!` when they don't want this behaviour, and the user still has a chance to review what's going to happen with the rebase, it's safe to have it always turned on.
27 lines
586 B
Text
27 lines
586 B
Text
[init]
|
|
templatedir = ~/.git_template
|
|
[push]
|
|
default = current
|
|
[color]
|
|
ui = auto
|
|
[alias]
|
|
aa = add --all
|
|
ap = add --patch
|
|
branches = for-each-ref --sort=-committerdate --format=\"%(color:blue)%(authordate:relative)\t%(color:red)%(authorname)\t%(color:white)%(color:bold)%(refname:short)\" refs/remotes
|
|
ca = commit --amend -v
|
|
ci = commit -v
|
|
co = checkout
|
|
st = status
|
|
[core]
|
|
excludesfile = ~/.gitignore
|
|
autocrlf = input
|
|
[merge]
|
|
ff = only
|
|
[commit]
|
|
template = ~/.gitmessage
|
|
[fetch]
|
|
prune = true
|
|
[rebase]
|
|
autosquash = true
|
|
[include]
|
|
path = ~/.gitconfig.local
|