"value":"\n <p>Here are some snippets from my Git configuration file.<\/p>\n\n<p>These days, I use a much simpler workflow and configuration since doing more trunk-based development, but in general, I rebase instead of merging by default, and prefer to use fast-forward merges that doesn't create a merge commit.<\/p>\n\n<p><code>branch.autosetuprebase = always<\/code> and <code>pull.rebase = true<\/code> configure Git to always rebase instead of pull. It does this for all branches, though I might override this for <code>main<\/code> branches.<\/p>\n\n<p><code>pull.ff = only<\/code> and <code>merge.ff = only<\/code> prevents creating a merge commit and will prevent the merge if it would create one. If I needed to override this, I could by using the <code>--no-ff<\/code> option on the command line.<\/p>\n\n<p>I use <code>checkout.defaultRemote = origin<\/code> to ensure that the <code>origin<\/code> remote is used if I have multiple remotes configured, and <code>push.default = upstream<\/code> to set the default remote to push to.<\/p>\n\n<p><code>merge.autoStash<\/code> allows for running merges on a dirty worktree by automatically creating and re-applying a stash of the changes, and <code>fetch.prune<\/code> will automatically prune branches on fetch - keeping things tidy.<\/p>\n\n<p>I also have and use a number of aliases.<\/p>\n\n<p>Some like <code>pl = pull<\/code> and <code>ps = push<\/code> are shorter versions of existing commands, and some like <code>aa = add --all<\/code>, <code>fixup = commit --fixup<\/code> and some additional arguments to commands.<\/p>\n\n<p>I also have some like <code>current-branch = rev-parse --abbrev-ref HEAD<\/code> and <code>worktrees = worktree list<\/code> which add simple additional commands, and some like <code>repush = !git pull --rebase && git push<\/code> which use execute shell commands to execute more complex commands or combine multiple commands.<\/p>\n\n<p>This is a snapshot of my Git configuration. The <a href=\"https:\/\/github.com\/opdavies\/dotfiles\/blob\/7e935b12c09358adad480a566988b9cbfaf5999e\/roles\/git\/files\/.gitconfig\">full version is on GitHub<\/a>.<\/p>\n\n ",
"format":"full_html",
"processed":"\n <p>Here are some snippets from my Git configuration file.<\/p>\n\n<p>These days, I use a much simpler workflow and configuration since doing more trunk-based development, but in general, I rebase instead of merging by default, and prefer to use fast-forward merges that doesn't create a merge commit.<\/p>\n\n<p><code>branch.autosetuprebase = always<\/code> and <code>pull.rebase = true<\/code> configure Git to always rebase instead of pull. It does this for all branches, though I might override this for <code>main<\/code> branches.<\/p>\n\n<p><code>pull.ff = only<\/code> and <code>merge.ff = only<\/code> prevents creating a merge commit and will prevent the merge if it would create one. If I needed to override this, I could by using the <code>--no-ff<\/code> option on the command line.<\/p>\n\n<p>I use <code>checkout.defaultRemote = origin<\/code> to ensure that the <code>origin<\/code> remote is used if I have multiple remotes configured, and <code>push.default = upstream<\/code> to set the default remote to push to.<\/p>\n\n<p><code>merge.autoStash<\/code> allows for running merges on a dirty worktree by automatically creating and re-applying a stash of the changes, and <code>fetch.prune<\/code> will automatically prune branches on fetch - keeping things tidy.<\/p>\n\n<p>I also have and use a number of aliases.<\/p>\n\n<p>Some like <code>pl = pull<\/code> and <code>ps = push<\/code> are shorter versions of existing commands, and some like <code>aa = add --all<\/code>, <code>fixup = commit --fixup<\/code> and some additional arguments to commands.<\/p>\n\n<p>I also have some like <code>current-branch = rev-parse --abbrev-ref HEAD<\/code> and <code>worktrees = worktree list<\/code> which add simple additional commands, and some like <code>repush = !git pull --rebase && git push<\/code> which use execute shell commands to execute more complex commands or combine multiple commands.<\/p>\n\n<p>This is a snapshot of my Git configuration. The <a href=\"https:\/\/github.com\/opdavies\/dotfiles\/blob\/7e935b12c09358adad480a566988b9cbfaf5999e\/roles\/git\/files\/.gitconfig\">full version is on GitHub<\/a>.<\/p>\n\n ",