 <blockquote> <p>is it as simple as sitting in branchB and doing:</p> <pre><code>git merge branchA </code></pre> </blockquote> <p>Yes, git has power in its simplicity.</p> <blockquote> <p>or do i need to do a:</p> <pre><code>git pull origin branchA </code></pre> <p>What's the difference here? </p> </blockquote> <p>The only difference here refers to using a remote repository. If you're pushing code to a remote, like Github, from another machine (or working with another person) then you would want to fetch any updates from there. If all changes are just on your local machine, then a pull will provide no new information.</p> <blockquote> <p>Doesn't pull do an implicit merge?</p> </blockquote> <p>Yes, it's shorthand for <code>git fetch</code> and then <code>git merge</code></p> <blockquote> <p>Does</p> <pre><code>git merge branchName </code></pre> <p>do an implicit pull on the branchName?</p> </blockquote> <p>Nope. Merge only uses your local branch. So, not to confuse you further, but your remotes have local "tracking branches" that you could merge like:</p> <pre><code>git merge remote/branchName </code></pre>