How to git checkout a remote branch named the same as a directory?

We have a remote branch named deploy for building and testing deploy scripts. Not surprisingly, the deploy scripts end up in a directory called deploy. Now that the directory deploy is in the branch master, when doing an initial clone it’s cumbersome to actually check out that branch.

$ git clone bitbucket.org:/myplace/mything
$ cd mything
$ ls
deploy          extensions      installExtensions   src         tests
$ git branch -r | grep dep
  origin/deploy
$ git checkout deploy
$ git branch
* master
$ git checkout origin/deploy
Note: checking out 'origin/deploy'.

You are in 'detached HEAD' state. [SNIP]

At this point should I just create a local branch named deploy and set it to track the remote? Is there any syntax I can give git so it knows I want to checkout a remote branch, not a local path?

  • Cloning only a specific branch on Github?
  • Git don't merge specific files (or even lines) when merging branches
  • Jenkins Multibranch (Pipeline) / Branch tracking
  • git - get all files that have been modified in branch
  • Git branch deletion
  • Configuration for GitHub branch restrictions not on GitHub website
  • git central repository and Team
  • Git not able to recognise addition of .xcscheme files in xcode project
  • How do you squelch git's automatic merge message?
  • Git Compare files before commit
  • Using React Native with Git
  • AWS - 'Failed to get bucket name' when doing git aws.push
  • 2 Solutions collect form web for “How to git checkout a remote branch named the same as a directory?”

    You could simply create a new local branch that points to the remote branch using either of these commands (the latter will check it out immediately):

    git branch deploy origin/deploy
    git checkout -b deploy origin/deploy
    

    This will however not set up the tracking functionality that happens when Git automatically creates a branch for a remote branch. To do that you have to do the following:

    git branch -u origin/deploy
    

    As an alternative, you can do this all in a single command, which is the same what Git would automatically do:

    git checkout -b deploy --track origin/deploy
    

    My workaround for this is

    git checkout deploy --

    Git Baby is a git and github fan, let's start git clone.