From: Michael J Gruber Date: Wed, 24 Aug 2016 16:00:11 GMT Subject: Re: diff using 3-dot behavior Message-ID: <9efbdfbb-4c82-1355-1f89-5edca7135179@drmicha.warpmail.net> In-Reply-To: Robert Dailey venit, vidit, dixit 24.08.2016 16:28: > I want to view the complete diff of my branch (topic) relative to its > parent branch (master). This should include cached/staged files and > unstaged working tree changes. > > If I do this: > > $ git diff master > > This will include changes on master *since* my last merge, which I do > not want (I don't want to see changes on master, only on topic). I > tried this: > > $ git diff master --not master > > This didn't give me any output. If I do this: > > $ git diff master...topic > > This shows me only committed changes on topic, but excludes staged & > unstaged changes. > > How can I get the results I want? The 3-dot notation means: Show the difference between the merge-base of master and topic, and topic. I'm not completely sure, but I guess what you want is: Show the difference between the merge-base of master and topic, and the worktree. You can accomplish this with: git diff $(git merge-base master topic) I guess a shorter notation for that could come in handy. OTOH, I usually diff against HEAD in a situation like that. Cheers, Michael