-1

I'm new to Git and I'm really confused here. I have a HTTPS from my github, and I am using terminal from a virtual box to try to pull the latest files from one of my branches.

Everytime I use the following command:

git pull http-link or git clone http-link it only pulls the files from the master branch, and not ALL the branches. I know this because when I run git branch I only see the master branch, and not the develop branch that I have in github. I want the files from this develop branch (NOT master) so I can push the changes to that branch, before merging to master. Please advise.

C. Lewis
  • 115
  • 2
  • 16
  • Related https://stackoverflow.com/questions/9537392/git-fetch-remote-branch – Malice Dec 28 '17 at 16:40
  • You basically need to fetch a remote branch, you need to create a remote tracking branch – Malice Dec 28 '17 at 16:40
  • Possible duplicate of [Git fetch remote branch](https://stackoverflow.com/questions/9537392/git-fetch-remote-branch) – phd Dec 29 '17 at 13:49

1 Answers1

1

it only pulls the files from the master branch, and not ALL the branches

The rules for pull are somewhat configuration-dependent, but I can tell you that when you clone it is getting the entire history (all branches) unless you give it specific options telling it not to (such as --single-branch).

I know this because when I run git branch I only see the master branch

That's because by default git branch lists the local branches, and not every known branch from the remote(s). You can say

git branch -a

to see the rest. They'll appear with names like

remotes/origin/branch-name

because what you have are not proper branches; rather these are sort of "bookmarks" that tell you where the remotes branches were, when last you fetched from the remote.

By default, cloning does not automatically create local branches for every branch on the remote (but it does fetch the branches). By default cloning does check out the default branch from the remote (master in this case), creating the local branch for it. And there are shortcuts built in to git such that, in a typical configuration with a single remote, you can say

git checkout branch-name

to create the local branch corresponding to the remote's branch-name branch.

Note that when you do this initial checkout, you don't want to say

git checkout remotes/origin/branch-name

because that does something else. Rather than create the local branch, this simply puts you in "detached HEAD" state, with HEAD on the same commit as the remote branch.

Mark Adelsberger
  • 32,904
  • 2
  • 24
  • 41