Is there some shortcut to specify the interval of fetched, new commits from remote tracking branch? Instead of typing this long command that is also branch specific:
git log branchName..origin/branchName
I am looking for some git interval hack, that will represent interval of branchName..origin/branchName, something like (not working, equivalent to git log ..origin/HEAD)
git log ..origin
This will do what you want, provided you have remote tracking configured for your branch:
git log ..@{u}
It will show all the commits on remotes/branch
which are not already on your local branch
. If you want to also see your local commits which have not been pushed, use three dots:
git log ...@{u}
Or if you want to see only your local commits which have not been pushed as of your last fetch, put the two dots after @{u}
:
git log @{u}..
Explanation:
@{u}
is shorthand for `HEAD@{upstream}
master@{upstream}
means the remote tracking branch for my local 'master' branch. master@{upstream}
is the same as origin/master
if your master
branch is tracking the remote branch named master
on the remote named origin
.master
) then your current branch is used instead.upstream
can be abbreviated to u
in this case. So @{u}
is the same as master@{upstream}
if your current branch is named master
...
is used to specify a range of commits.
A..B
is the same as ^A B
which means show me all the commits in B but exclude those in A. It can also be written B --not A
.A..
or ..B
, then the omitted reference is presumed to be HEAD
.git rev-parse --symbolic-full-name @{u}
git branch --set-upstream-to=origin/master
You can find all the details about revision specifications like this in the Git man pages:
git help revisions
Or
man gitrevisions