title: How can I tell what GIT branches are not fully merged?
body: <p>So I'm interested in opinions about my current GIT workflow (which I'm new to), and how to determine which of my changes have not yet been merged/pushed to the appropriate repositories. So first off, my current system looks like this:</p>
  
  <pre><code>      remote.master
              |
              |
              V
        local.master
     |       |       |
     V       V       V
   branch  branch   branch
  </code></pre>
  
  <p>For a new task, I would pull from remote.master to local.master, create a new branch and check it out. I would do various commits while working on the task, maybe switching to other tasks, and then when ready, would pull from remote.master to local.master, merge my branch to local.master, and finally push to remote.master.</p>
  
  <p>So 2 questions: for a small team, is this overkill?  Does it make more sense to omit the local branches? If so, <a href="https://sandofsky.com/blog/git-workflow.html" rel="noreferrer">some advice</a> suggests there will be either problems with 'fast forwarding' (which I understand makes changes indistinguishable in remote.master) or a plethora of commit that have potentially unexpected timestamps and are difficult to parse through.</p>
  
  <p>2nd, assuming the above workflow: I sometimes switch between tasks frequently. I want a screen that shows me:</p>
  
  <pre><code>'branch 01' -&gt; partially merged to local.master 
  'branch 04' -&gt; notmerged to local.master 
  'local.master' -&gt; partially merged to remote.master
  </code></pre>
  
  <p>It can happen that I forget if various features have been merged, and to where. I definitely don't want to go branch-by-branch and attempt to divine this info through 'git diff' or other commands. I currently use Tortoise GIT on Windows, but am open to other graphical alternatives. I do use the shell at times, but prefer a UI. Is there a way to get this info?</p>