I was just knocking around in my global .gitconfig
file and I noticed that I've managed to end up with this:
[branch] autosetupmerge = always autosetuprebase = always
That seemed more than a little counterintuitive, but after doing some reading, I still have no idea whether I need both or whether it's sufficient to remove autosetupmerge
and just retain autosetuprebase
. Most projects that I'm working have a straight downstream->upstream flow, so rebasing is generally preferred when dealing with branches.
autosetuprebase controls whether new branches should be set up to be rebased upon git pull , i.e. your setting of always will result in branches being set up such that git pull always performs a rebase, not a merge. (Be aware that existing branches retain their configuration when you change this option.)
Git pull rebase is a method of combining your local unpublished changes with the latest published changes on your remote. Let's say you have a local copy of your project's main branch with unpublished changes, and that branch is one commit behind the origin/main branch.
What is counterintuitive here is the naming of these preferences. They do look like they refer to the same functionality, but in fact they don't:
autosetupmerge
controls whether git branch
and git checkout -b
imply the --track
option, i.e. with your setting of always
, git checkout branchname
, if branchname
exists on a remote but not locally, will create branchname
tracking its remote counterpartgit checkout -b newbranch
will create a new branch newbranch
tracking whichever branch you had checked out before issuing this commandautosetuprebase
controls whether new branches should be set up to be rebased upon git pull
, i.e. your setting of always
will result in branches being set up such that git pull
always performs a rebase, not a merge. (Be aware that existing branches retain their configuration when you change this option.)So it makes perfect sense to have both autosetupmerge = always
and autosetuprebase = always
; in fact, that's also what I have.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With