title: Fast-forwarding and rebase in git
body: <p>I am reading <a href="https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging" rel="nofollow">this</a> and for the most part, I get it. I think I understand rebasing (it obtains a more linear git log history without having to make a commit that is just a three-way commit) I also think I understand the git diagrams. But there are a few words in the paragraph I don't understand. </p>
  
  <blockquote>
    <p>You’ll notice the phrase “fast-forward” in that merge. Because the
    commit pointed to by the branch you merged in was directly
    <strong>upstream</strong> of the commit you’re on, Git simply moves the <strong>pointer</strong> forward. To phrase that another way, when you try to merge one commit
    with a commit that can be reached by following the first commit’s
    history, Git simplifies things by moving the pointer forward because
    there is no divergent work to merge together – this is called a
    “fast-forward.”</p>
    
    <p><strong>Your change is now in the snapshot of the commit pointed to by the master branch, and you can deploy the fix.</strong></p>
  </blockquote>
  
  <p>What I don't understand are the terms upstream, pointer, and the last sentence.</p>
  
  <p>In the diagram, why is the red master box above hotfix?</p>