Skip to content
  • Junio C Hamano's avatar
    "checkout A...B" switches to the merge base between A and B · 619a644d
    Junio C Hamano authored
    
    
    When flipping commits around on topic branches, I often end up doing
    this sequence:
    
     * Run "log --oneline next..jc/frotz" to find out the first commit
       on 'jc/frotz' branch not yet merged to 'next';
    
     * Run "checkout $that_commit^" to detach HEAD to the parent of it;
    
     * Rebuild the series on top of that commit; and
    
     * "show-branch jc/frotz HEAD" and "diff jc/frotz HEAD" to verify.
    
    Introduce a new syntax to "git checkout" to name the commit to switch to,
    to make the first two steps easier.  When the branch to switch to is
    specified as A...B (you can omit either A or B but not both, and HEAD
    is used instead of the omitted side), the merge base between these two
    commits are computed, and if there is one unique one, we detach the HEAD
    at that commit.
    
    With this, I can say "checkout next...jc/frotz".
    
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    619a644d