Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
docs:git:starting_a_new_remote_branch [2010/04/04 10:39] – billh | docs:git:starting_a_new_remote_branch [2010/07/28 16:08] (current) – billh | ||
---|---|---|---|
Line 2: | Line 2: | ||
In the examples below, there is a shared repo (shared), a user1 (doing the branch changes), and a user2 (needs to pull the branch changes). | In the examples below, there is a shared repo (shared), a user1 (doing the branch changes), and a user2 (needs to pull the branch changes). | ||
- | ===== method 1: push a new branch directly to the shared repo ===== | + | Method 1 may be better for you if the branch already exists locally, and you need that history pushed to the shared repo. |
+ | |||
+ | |||
+ | ===== method 1: start a local branch and push it to the remote ===== | ||
+ | * shared repo has one branch: master | ||
+ | * user1 creates a new local branch called dev< | ||
+ | $ git checkout -b dev | ||
+ | </ | ||
+ | * push the new local branch to the shared repo:< | ||
+ | $ git push origin dev | ||
+ | </ | ||
+ | * but wait - even though user1 created the branch and pushed it to the remote, the local branch is not yet tracking the shared branch | ||
+ | * option 1 - use %%--set-upstream%%< | ||
+ | git branch --set-upstream dev origin/ | ||
+ | (output should be: Branch dev set up to track remote branch dev from origin.) | ||
+ | </ | ||
+ | * option 2 - delete the local branch and create it again with %%--track%%< | ||
+ | $ git checkout master | ||
+ | $ git branch -D dev | ||
+ | $ git checkout --track -b dev origin/ | ||
+ | </ | ||
+ | * option 3 - manually edit your .git/config by adding lines similar to the following (this is what %%--set-upstream%% does for you)< | ||
+ | [branch " | ||
+ | remote = origin | ||
+ | merge = refs/ | ||
+ | </ | ||
+ | * user2 can pull changes to see the new branch, then use the same command as user1 to create a local branch and track the remote branch:< | ||
+ | $ git pull | ||
+ | |||
+ | From / | ||
+ | * [new branch] | ||
+ | Already up-to-date. | ||
+ | |||
+ | $ git checkout --track -b dev origin/ | ||
+ | $ git branch -a | ||
+ | |||
+ | * dev | ||
+ | master | ||
+ | remotes/ | ||
+ | remotes/ | ||
+ | remotes/ | ||
+ | </ | ||
+ | |||
+ | ===== method 2: push a new branch directly to the shared repo ===== | ||
* shared repo has one branch: master | * shared repo has one branch: master | ||
- | * user1 creates | + | * user1 pushes |
$ git push origin origin: | $ git push origin origin: | ||
</ | </ | ||
Line 41: | Line 84: | ||
remotes/ | remotes/ | ||
</ | </ | ||
+ | |||
+ | ===== Advanced Topics ===== | ||
+ | ==== creating a new remote branch from a branch other than master ==== | ||
+ | we want to create a new remote branch called foo2 from an existing remote branch called foo | ||
+ | < | ||
+ | $ git push origin origin/ | ||
+ | </ | ||
+ | |||
+ | ==== remove a remote branch ==== | ||
+ | < | ||
+ | git push origin : | ||
+ | </ | ||
+ | |||
+ | ===== External Links ===== | ||
+ | * http:// | ||
+ | |||
+ | |||