Lidong Yan <yldhome2d2@xxxxxxxxx> writes: > Yeah. Though I considered that when pull.rebase = false, checking > merge.autoStash instead of rebase.autoStashmight confuse users > who rely on setting rebase.autoStash for their merge operations. Yes, that would be a behaviour change, but it is just one time thing. You notice your "git pull" do not autostash and instead stops, you scratch your head and go read the documentation, and set pull.autostash to true (which as I said I would not necessarily recommend) or merge.autostash to true (which may not be as bad) and move on. I didn't consider it when I wrote my earlier message, but I like your idea of defeating rebase.autostash and merge.autostash when pull.autostash is explicitly set to false very much. With it, users can set {rebase,merge}.autostash to true so that their local rebases and merges, for which they are familiar with what both sides did, would autostash (and autounstash), and set pull.autostash to false so their "git pull" would be stopped when they have local changes that would interfere with the operation, if they wanted to. Thanks.