'How to take latest changes from dev branch to my current branch
We have below branches on which we work.
master
dev
person A
person B
We both keep working on our branches i.e. person A or person B (working on same project). When person A finish the work, he commits changes to his branche and then create a pull request to merge the changes into dev, which other person B views and approve. After approval, the changes are then saved in dev.
How B can take the latest changes which A has done, from dev to his branch person B. We are using github desktop to do all the git push/pull but happy to learn commands too. Thanks.
Solution 1:[1]
It's a good practice to as soon as feasible after person A pushes the changes to dev for person B to get these changes into their branch b. This is so that person B works on latest code and their eventual merge to dev is easy.
Option 1, pull
- Commit all changes to branch
feature_branch(git status showsclean) git checkout devgit pull- this fetches (downloads) the changes onto computerband merges these changes into the currently checked out local branch on computerb(in this case branchdev). This operation should normally be a 'fast-forward' (so no merge conflicts)git checkout feature_branchgit merge dev- this merges changes fromb's localdevto thefeature_branch.git mergetool- resolve conflictsgit commit- commit your merge
With this option b's both local dev and feature_branch have latest changes.
Option 2, fetch
- Commit all changes to branch
feature_branch(git status showsclean) git fetch origin dev- this downloads latest changes todev, but doesn't merge them to localdevgit merge origin/dev- this merges changes from the downloaded version ofdevto thefeature_branch.
In this scenario b's local feature_branch will have the most recent changes from dev as they are on the remote repo and their local dev will not have these changes. This is OK, since b isn't working on dev, (s)he's working on feature_branch.
I like option 2 as I don't need to checkout dev, but both options are equally correct.
Solution 2:[2]
These are the steps that I do for that, though using command line interface.
- Checkout dev branch (git checkout dev)
- Get the latest of dev branch (git pull)
- Checkout branch B (git checkout B)
- Merge dev branch to branch B (git merge dev)
You can follow these steps using your github desktop.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Mac |
