David Y.
—After cloning a Git repository that has many branches, I can only see a single branch in my local copy. How do I pull all branches from the remote repository and have them show up in the output of git branch
?
To create local equivalents of all branches in the remote repository, we can run the following bash for loop:
for remotebranch in `git branch -r | grep -v HEAD`; do git branch --track ${remotebranch#origin/} $remotebranch done
This code loops through all branches in the remote repository and creates local equivalents for them. For example, when the script encounters origin/dev
, it will create a local dev
branch which tracks it (note the use of substitution syntax to remove origin/
). These branches will now show up in the output of git branch
and can be checked out, committed to, pulled and pushed.
If we only need to view the remote branches, and not work on them, we can use git fetch
instead:
git fetch --all
We will then be able to view the repository state at each of these branches in detached HEAD state by running git checkout origin/remote-branch-name
.
If we only need to work on one or two remote branches, we can create and check out local versions of them manually using the following git checkout
command:
git checkout -b local-branch-name origin/remote-branch-name
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.