I think I'm on the right track to understand the basic concepts of git.
I've already set up and cloned a remote repository. I also created a server side empty repository, and linked my local repository to it.
My problem is that I don't understand the difference between:
As far as I have understood, master is a local branch, and remotes/origin/master is a remote one.
But what exactly is origin/master?
Take a clone of a remote repository and run git branch -a
(to show all the branches git knows about). It will probably look something like this:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Here, master
is a branch in the local repository. remotes/origin/master
is a branch named master
on the remote named origin
. You can refer to this as either origin/master
, as in:
git diff origin/master..master
You can also refer to it as remotes/origin/master
:
git diff remotes/origin/master..master
These are just two different ways of referring to the same thing (incidentally, both of these commands mean "show me the changes between the remote master
branch and my master
branch).
remotes/origin/HEAD
is the default branch
for the remote named origin
. This lets you simply say origin
instead of origin/master
.