Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

What is the difference between the HEAD and master in Git?

I did a clone of a project on GitHub and want to push my changes to the remote. But to which one should I push?

screenshot

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
669 views
Welcome To Ask or Share your Answers For Others

1 Answer

master is a reference to the end of a branch. By convention (and by default) this is usually the main integration branch, but it doesn't have to be.

HEAD is actually a special type of reference that points to another reference. It may point to master or it may not (it will point to whichever branch is currently checked out). If you know you want to be committing to the master branch then push to this.

Here is a visual example:

alt text

On your own repository you can check where the HEAD is pointing to by running this:

$ git symbolic-ref HEAD
refs/heads/master

However, finding out where the remotes/origin/HEAD is pointing to is more tricky because it is on the remote machine.

There is a great little tutorial on git references here:

http://people.gnome.org/~federico/news-2008-11.html#pushing-and-pulling-with-git-1


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...