How can I do a bugfix on master and integrate it into my less stable branch(es)?

后端 未结 2 592
后悔当初
后悔当初 2020-12-06 07:18

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<

相关标签:
2条回答
  • 2020-12-06 07:57

    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:

    enter image description here

    Suddenly, you realise that there is a bug on master, a bug which 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
    

    enter image description here

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

    enter image description here

    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
    

    enter image description here

    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.

    1. Merge master into develop, by running:

      git checkout develop
      git merge master
      

      enter image description here

    2. Alternatively, rebase develop on top of master, by running:

      git checkout develop
      git rebase master
      

      enter image description here

    In either case, your develop branch will now contain the fix, and you can resume work on develop.

    0 讨论(0)
  • 2020-12-06 07:57

    let's suppose you have you master and dev branches.

    You work on dev for your new features and you do your fix on master.

    Then you checkout dev and merge master into dev. This way master is fixed and dev can profit from the fix you made AND keeps it's own history.

    Alternatively, you can rebase dev on top of branch. This gives you a "cleaner" history in the sense that you don't have merge points.

    See the git guide about merging: http://git-scm.com/docs/git-merge

    0 讨论(0)
提交回复
热议问题