How to rebase local branch with remote master

后端 未结 7 1224
北海茫月
北海茫月 2020-11-28 17:03

I have a cloned project from a master branch from remote repository remote_repo. I create a new branch and I commit to that branch. Other programmers pushed to

相关标签:
7条回答
  • 2020-11-28 17:29

    Note: If you have broad knowledge already about rebase then use below one liner for fast rebase. Solution: Assuming you are on your working branch and you are the only person working on it.

    git fetch && git rebase origin/master
    

    Resolve any conflicts, test your code, commit and push new changes to remote branch.

                                ~:   For noobs   :~
    

    The following steps might help anyone who are new to git rebase and wanted to do it without hassle

    Step 1: Assuming that there are no commits and changes to be made on YourBranch at this point. We are visiting YourBranch.

    git checkout YourBranch
    git pull --rebase
    

    What happened? Pulls all changes made by other developers working on your branch and rebases your changes on top of it.

    Step 2: Resolve any conflicts that presents.

    Step 3:

    git checkout master
    git pull --rebase
    

    What happened? Pulls all the latest changes from remote master and rebases local master on remote master. I always keep remote master clean and release ready! And, prefer only to work on master or branches locally. I recommend in doing this until you gets a hand on git changes or commits. Note: This step is not needed if you are not maintaining local master, instead you can do a fetch and rebase remote master directly on local branch directly. As I mentioned in single step in the start.

    Step 4: Resolve any conflicts that presents.

    Step 5:

    git checkout YourBranch
    git rebase master
    

    What happened? Rebase on master happens

    Step 6: Resolve any conflicts, if there are conflicts. Use git rebase --continue to continue rebase after adding the resolved conflicts. At any time you can use git rebase --abort to abort the rebase.

    Step 7:

    git push --force-with-lease 
    

    What happened? Pushing changes to your remote YourBranch. --force-with-lease will make sure whether there are any other incoming changes for YourBranch from other developers while you rebasing. This is super useful rather than force push. In case any incoming changes then fetch them to update your local YourBranch before pushing changes.

    Why do I need to push changes? To rewrite the commit message in remote YourBranch after proper rebase or If there are any conflicts resolved? Then you need to push the changes you resolved in local repo to the remote repo of YourBranch

    Yahoooo...! You are succesfully done with rebasing.

    You might also be looking into doing:

    git checkout master
    git merge YourBranch
    

    When and Why? Merge your branch into master if done with changes by you and other co-developers. Which makes YourBranch up-to-date with master when you wanted to work on same branch later.

                                ~:   (๑ơ ₃ ơ)♥ rebase   :~
    
    0 讨论(0)
  • 2020-11-28 17:34

    git fetch origin master:master pulls the latest version of master without needing to check it out.

    So all you need is:

    git fetch origin master:master && git rebase master

    0 讨论(0)
  • 2020-11-28 17:35

    First fetch the new master from the upstream repository, then rebase your work branch on that:

    git fetch origin            # Updates origin/master
    git rebase origin/master    # Rebases current branch onto origin/master
    

    Update: Please see Paul Draper's answer for a more concise way to do the same - recent Git versions provide a simpler way to do the equivalent of the above two commands.

    0 讨论(0)
  • 2020-11-28 17:35

    1.Update Master first...

    git checkout [master branch]
    git pull [master branch]
    

    2.Now rebase source-branch with master branch

    git checkout [source branch]
    git rebase [master branch]
    git pull [source branch] (remote/source branch)
    git push [source branch]
    

    IF source branch does not yet exist on remote then do:

    git push -u origin [source branch]
    

    "et voila..."

    0 讨论(0)
  • 2020-11-28 17:39

    After committing changes to your branch, checkout master and pull it to get its latest changes from the repo:

    git checkout master
    git pull origin master
    

    Then checkout your branch and rebase your changes on master:

    git checkout RB
    git rebase master
    

    ...or last two commands in one line:

    git rebase master RB
    

    When trying to push back to origin/RB, you'll probably get an error; if you're the only one working on RB, you can force push:

    git push --force origin RB
    

    ...or as follows if you have git configured appropriately:

    git push -f
    
    0 讨论(0)
  • 2020-11-28 17:41
    git pull --rebase origin master
    
    0 讨论(0)
提交回复
热议问题