How to determine master, origin, head

I find myself getting lost in git branches.

How can I determine what my origin/master/head is if I’m in an arbitrary git branch?

This way I can predict the effects of commands such as those shown here.

  • Hg-Git and the Current Version (2) of Mercurial?
  • How do you do merges using Git, Eclipse and Egit
  • Should I commit .testsettings and .vsdmi files to the repository?
  • Git merging within a line
  • Database structure and source control - best practice
  • Version control for sound, video, and other binary files
  • Get the diff in Git for files that have been renamed and then significantly changed. This does not currently work properly for me
  • Where are all the native revisioned databases?
  • 4 Solutions collect form web for “How to determine master, origin, head”

    It’s not clear from your question that you entirely understand what origin, master, and HEAD refer to – only one of them is actually a branch. (And it’s HEAD, not head.) It’s quite possible some of your confusion stems from a lack of understanding of a couple core things, so it really is a good idea for you to thoroughly read a references like the Git Book (which you linked to), starting from the beginning. You might also appreciate the Git Parable, which gives a friendly, story-like description of the basic ideas of Git.

    HEAD refers to the currently checked-out commit. It normally does so via a branch; HEAD points to the branch, which points to the commit – so usually we just talk about what branch is checked out. So you seem to be asking either how to determine what branch you have checked out, or what commit that branch points to. You can use git branch to determine your current branch, and also list your other branches. If you want to know more about the commit that branch points to, you could use git show (equivalent to git show HEAD).

    master is the default name given to the branch automatically created in a new repository. The convention (which is almost universally followed) is that the master branch is the stable branch, representing the canonical current content of the repository. This means that there is almost certainly a master branch in your repository, since you either created it or cloned it from somewhere that has a master branch. Again, it’s unclear exactly what you need, but a commonly used command is git log master, which will show commits starting from the tip of the master branch, walking back in history. If you want to also see the changes the commits made, add the -p option. Adding the --decorate option will tell Git to annotate commits with any branches pointing to them (e.g. you’d see master on the top commit). Use --graph to see ASCII art history graph, handy for understanding merges. See the git-log manpage for more options – there are plenty. If you prefer graphical history viewing, try gitk master. To include all branches, including remote ones, you could use gitk --all.

    origin is the name for the default remote. When you clone a repository, this is automatically set up for you. You can see some information about it using git remote show origin, which will show you the URL for the repo, its HEAD, the branches on the remote, and any local branches tracking those remote branches.

    you can always see what your tracking branches are doing with

    git branch -r | xargs git log --decorate

    add --graph if you want to see how they are related with branching and merging. Refresh the tracking branches with

    git fetch

    You could you gitk to visualise your branch structure

    You can use something like this to display your brach

    Git Baby is a git and github fan, let's start git clone.