for pushing to bitbucket.
If I do: git push origin origin/branch_name
my commits are not pushed.
Total 0 (delta 0), reused 0 (delta 0)
If I do git push origin branch_name
my commits are pushed:
Counting objects: 160, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (20/20), 2.10 KiB | 0 bytes/s, done.
Total 20 (delta 6), reused 0 (delta 0)
so what is the origin/ mean in front of the branch_name? And why does it matter?
You have to keep in mind that there are different types of branches:
origin
. From that repository's point of view, though, such a branch is local. Welcome to Distributed Version Control! :)
Here, branch_name
is a local branch, whereas origin/branch_name
is a remote-tracking branch; it reflects the state of the corresponding branch that lives in origin
.
Right after running
git fetch
the remote-tracking branch origin/master
and the corresponding branch that live in origin
should be perfectly in sync (modulo concurrent pushes to the remote server, of course). It shouldn't be a surprise, then, that
git push origin origin/branch_name
doesn't push anything: you're essentially attempting to push stuff that is already present in the ancestry of the corresponding branch that live in origin
.
However, if your local branch, branch_name
, is ahead by one or more commits,
then running
git push origin branch_name
will push the commits contained in branch_name
to origin/branch_name
: