title: The current branch does not track a remote branch
body: <p>I must stress my usage of GIT (via VS2019 Team Explorer) has so far been fairly basic: 2 users, often working in sequence on the <code>Master</code> branch. Very happy to be suggested some reading for a deeper introduction to the concepts of GIT.</p>
  <p>We wanted to start using GIT through a more <em>business-like</em> workflow. The idea is to keep the <code>Master</code> for core updates/upgrades, and to fork new branches based on past commits when publishing mini hot fixes: we pick the commit of the last publish, and create a new branch based on this commit; let's we call it <code>HotFix</code>. We do our fix, commit/publish/<code>push</code>, and then <code>merge</code> with the <code>Master</code>.</p>
  <p>So we just started: Yesterday Mike created the <code>HotFix</code> branch, fixed a bug, committed, published the update, and <code>push</code>ed the commit to the remote. No merging with the Master was done yet. Today, Bob started Visual Studio, selected the <code>HotFix</code> branch, <strong>did not pull</strong>, and started to work on a second bug. Now he tries to <code>push</code>, but GIT is not happy and says:</p>
  <blockquote>
  <p>Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes  before pushing again.</p>
  </blockquote>
  <p>We understand this is because since he did not pull before starting to work, he is 1 commit behind Mike's/the Remote's version of the same branch. When this happens on the <code>Master</code>, we typically <code>pull</code> and merge/resolve any conflicts, and then <code>push</code> the work. But here, we cannot <code>pull</code>. There also is a message that says:</p>
  <blockquote>
  <p>The current branch does not track a remote branch.</p>
  </blockquote>
  <p>We are a bit confused, because VS documentation says you need to push the branch so that it tracks the remote, but we cannot <code>push</code> because we are 1 commit behind the remote and should <code>pull</code> first, which requires <code>push</code>ing.. is this a catch 22 situation?</p>
  <p>I read <a href="https://www.git-tower.com/learn/git/faq/track-remote-upstream-branch/" rel="nofollow noreferrer">here</a> that <code>$ git branch -u origin/dev</code> will make &quot;a tracking relationship for your current HEAD branch&quot;. I also feel that <a href="https://stackoverflow.com/questions/40547932/visual-studio-git-no-tracked-remote-branch">this post</a> describe a similar scenario to ours; however the UX flow described in the most popular answer differs from what we have, I guess because we already have a remote repository, only the specific branch is problematic.</p>
  <p>We understand the concepts of GIT and incremental versioning, but we know so little about its subtleties that I am scared of doing something irreversible. Could anyone confirm we are on the right track?</p>