How do I synchronize two branches in the same Git repository?

后端 未结 3 954
小鲜肉
小鲜肉 2021-01-31 03:03

Here\'s a common workflow hurdle I encounter often:

master is our \"stable\" branch

$ git status
# On branch master
nothing to commit (working         


        
相关标签:
3条回答
  • 2021-01-31 03:37

    If you don't need the branch around:

    If you've merged foo back to master, "git branch -d foo" to kill the topic branch, and then "checkout -b foo" in the future when you need to hack on it again.

    If you do need the branch around:

    You can rebase your topic branch against the master branch:

    git checkout foo
    git rebase master
    

    Or:

    git rebase master foo
    
    0 讨论(0)
  • 2021-01-31 03:38

    Rebasing is the process of moving or combining a sequence of commits to a new base commit. Rebasing is most useful and easily visualized in the context of a feature branching workflow. The general process can be visualized as the following:

    The example below combines git rebase with git merge to maintain a linear project history. This is a quick and easy way to ensure that your merges will be fast-forwarded.

    # Start a new feature
    git checkout -b new-feature master
    # Edit files
    git commit -a -m "Start developing a feature"
    

    In the middle of our feature, we realize there’s a security hole in our project

    # Create a hotfix branch based off of master
    git checkout -b hotfix master
    # Edit files
    git commit -a -m "Fix security hole"
    # Merge back into master
    git checkout master
    git merge hotfix
    git branch -d hotfix
    

    After merging the hotfix into master, we have a forked project history. Instead of a plain git merge, we’ll integrate the feature branch with a rebase to maintain a linear history:

    git checkout new-feature
    git rebase master
    

    This moves new-feature to the tip of master, which lets us do a standard fast-forward merge from master:

    git checkout master
    git merge new-feature
    

    Taken from Atlassian Git Rebase Tutorial

    0 讨论(0)
  • 2021-01-31 03:46

    I use the following to combine changes from two branches (mine and yours) and to synchronize both branches for continued work. This seems to be working. Does anyone see a problem with it?

    git checkout mine # make sure I'm on my branch
    git commit -a     # commit changes
    git push origin mine  
    git checkout yours # switch to your branch
    git pull origin yours # get changes you've committed & pushed
    git checkout mine 
    git merge yours # merge your changes into mine
    git push origin mine 
    git checkout yours 
    git rebase mine # set your branch to the merged result
    git push origin yours # push the merged result up to your branch on origin
    git checkout mine # get back to my branch
    
    0 讨论(0)
提交回复
热议问题