11

GitHub's UI is fairly unintuitive and poorly thought-out, so here's a problem and a question:

What is the "head" repo? What is the "base" repo? I do not know which one is being copied from. The words "base" and "head" mean the same thing. The "head" of a linked list is similar to the "base" of a tree. (GitHub has fork tree and file tree.) "Head" and "base" are synonyms and mean the "start" of a data structure, so these labels are ambiguous.

enter image description here

Despite the arrow in the diagram, it is not apparent which repo is being copied from and which is copied to. They really should have included a "To" and "From" label to clear this up. The word "compare" does not imply directionality. This is really REALLY stupid wording. The arrow could mean "X into Y", or it could mean "Y into X".

Ryan
  • 1,486
  • 4
  • 18
  • 28
  • 3
    I agree with you that the interface is not good. But StackOverflow isn't the right place to ask why the GitHub folks did whatever they did; here, we can only talk about how to *use* what they did. – torek Nov 20 '19 at 23:50
  • @torek what is base vs head? I only asked here, because my first instinct was to search on StackOverflow, not go on a hunt in their documentation (which has the answer but no history of the names). – Ryan Nov 21 '19 at 00:15

1 Answers1

25

The terms "head" and "base" are used as they normally are in Git. The head is the branch which you are on; that is, the branch with your changes. The base is the branch off which these changes are based. This is similar to the terminology used for git rebase and git merge-base.

For example, if I'm comparing changes I've made on my foo123 branch against the main Git repository, the base branch is the master branch of git/git, and the head branch is the foo123 branch of bk2204/git. I would be proposing merging my changes on my foo123 branch into the main Git master branch if I opened a pull request.

bk2204
  • 64,793
  • 6
  • 84
  • 100