I'm using Git for one of my projects at the moment, and I love it.
However, because I'm the only one working on my project, the only commands I've been using are
git status
git add .
git commit -m 'message here'
git push origin master
I have pushed the project to remote a long time ago ago (I Capistrano for deployment), and all is working great.
Now I want to change the design of the site, but keep the logic intact. I'm guessing I need to create a new branch (let's call it newdesign) for that.
What I'm wondering, though, is this: if I'm working on the newdesign branch, and I see a bug in the master branch, how can I fix the bug on master and then integrate that bugfix in the newdesign branch, so that the latter be kept up to date with the actual logic?
bugfix is a git-flow-avh extension which embodies the functionality of working on the green release line in the above diagram. bugfix branches off the release branch and merges to both the release and development branches on finish.
This is a classic case in which you can take advantage of Git branches. Here is the workflow you should use.
Let's say you've created a develop branch stemming from master and you've made a few commits on that branch:

Suddenly, you realise that there is a bug on master, a bug that you need to fix quickly. Instead of working directly off of master, you should create a short-lived bug-fix branch, to isolate the bug-fixing task from your master branch:
git checkout master
git checkout -b bugfix

After making one commit (or more) on the bugfix branch to fix the problem,

you should make sure that everything works as it should (run tests, etc.). When you're happy with the state of your code on bugfix, merge it into master:
git checkout master
git merge bugfix

At that stage, you can push your (now fixed) master branch to remote, and delete the bugfix branch:
git push origin master
git branch -d bugfix
Now, to integrate the latest changes on master into develop, you basically have two options.
Merge master into develop, by running:
git checkout develop
git merge master

Alternatively, rebase develop on top of master, by running:
git checkout develop
git rebase master

In either case, your develop branch will now contain the fix, and you can resume work on develop.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With