How to create development branch from master on GitHub

I created a repo on GitHub and only have a master branch so far. My local working copy is completely up to date with the remote/origin master on GitHub.

I now want to create a development branch on GitHub so that other people on my team can start pushing changes to development (instead of directly to master) and submit PRs, request code reviews, etc.

So I tried creating a new development branch locally and pushing it:

git checkout -b development git push origin development:master 

But git just says Everything up-to-date. So I ask:

If I'm current with master, how do I just create a remote development branch that contains an exact copy of master?

1

4 Answers

When you do

$ git push origin development:master 

What's actually happening is git is taking <local>:<remote> and updating <remote> to whatever the <local> branch is.

Since you executed git checkout -b development from master, your local development has all the commits master does; hence it shows as everything is up to date.

You can just do

$ git checkout -b development $ git push origin development 

to push the new branch

2

Creating a git develop branch

You can list all of your current branches like this:

git branch -a 

This shows all of the local and remote branches. Assuming you only have a single master branch, you'd see the following:

* master remotes/origin/master 

The * means the current branch.

To create a new branch named develop, use the following command:

git checkout -b develop 

The -b flag creates the branch. Listing the branches now should show:

* develop master remotes/origin/master 

Changing branches

You shouldn't commit anything directly to the master branch. Instead do all your work on the develop branch and then merge develop into master whenever you have a new public release.

You are already in your develop branch, but if you weren't, the way to switch is as follows:

git checkout develop 

That's the same way you create a branch but without the -b.

Making changes on develop

When making changes, add and commit as usual:

git add . git commit -m "whatever" 

The first time you push to your remote do it like so:

git push -u origin develop 

The -u flag stands for --set-upstream. After the first time you only need to do it like this:

git push 

Merging develop to master

Once your develop is ready to merge into master you can do it like so:

First switch to your local master branch:

git checkout master 

To merge develop into master do the following:

git merge develop 

Then push the changes in local master to the remote master:

git push 

Done.

Deleting a branch

If you don't need the develop branch anymore, or you just want to delete it and start over, you can do the following:

Delete the remote develop branch:

git push -d origin develop 

Then delete the local branch:

git branch -d develop 

The -d means delete.

3

You can also use git flow. This will automatically create the branch with the right naming convention, it's good practice.

git flow init 

and to push

git push --set-upstream origin develop 

This works for me

git push origin development 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like