git - How do you update upstream with changes from fork? -


i have main repository a, forked repository b. i've made changes in b want move a. i'm having hard time figuring out how this.

first, git commands this?

second, can pull request in github facilitate this? how work?

finally, had branch in b wanted merge. should merge branch in b master branch before doing merge/pull request upstream repository (a)?

there 2 main ways of doing this

  1. merge client side , interact multiple remotes
  2. merge server side pull requests, , interact 1 remote

before read on i'd question relatively open-ended , there not single best answer it. following answer reflect of workflows i've used give insight.

client side

supposing working on clone of b, can add second remote:

git remote add repo_a <repo url> 

repo_a alias remote repository, origin currrent alias remote b. let's rename origin repo_b sake of clarity:

git remote rename origin repo_b 

list remotes:

git remote -v 

fetch stuff both remotes

git fetch repo_a git fetch repo_b 

at point, can create local branches track branches both remote repositories without restrictions on way merge, or merge. how define workflow add constraints.

if, say, you'd merge changes repo b's feature_1 branch repo_a's master branch, do:

git checkout -b master_a repo_a/master --track git merge feature_1 git push repo_a master_a:master 

you're biggest friend gitk or other graphical tool display local branches , remote branches in same view. suggest opening detached gitk , refreshing need. don't forget --all option.

gitk --all & 

server side (pull requests)

in next example, client-side commands take place in local clone of repo_b. push features repo_b on github , use pull requests merge.

when work pull requests have repo_b's master branch in sync parent repository , it's common use upstream , origin in repo_b's client side clone:

git remote add upstream <repo url> 

reset master branch upstream:

git fetch upstream git fetch origin git checkout master git reset --hard upstream/master git checkout -b feature_2 

implement feature , push github:

git push origin feature_2 

now in web interface should have option submit pull request when viewing branch. won't go through details should intuitive enough. select repo_b/feature_2 source , repo_a/master destination.

when merge done, can update master branch in clone of repo_b:

git fetch origin git checkout master git merge origin/master 

Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -