The wrong way to do is:
git checkout -b new_branch git pull origin new_branch
But please do it in this way:
git checkout -b new_branch origin/new_branch
Though seemingly the same, these two ways are significantly different:
The first one checkout the new branch from existing branch (maybe master), and merge it with the remote new_branch, this is not really what we want
The second does the clean job, just set up to track the remote new_branch and got nothing to do existing local branch.
But if you meet the following error:
fatal: git checkout: updating paths is incompatible with switching branches.
This error occurs mostly because you want to check out a branch which your local git repo is not aware of, which means the remote branch is totally new. So update the local git repo before checking out the new branch:
git remote update git checkout -b new_branch origin/new_branch