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:58] – 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 | + | Method |
- | ===== method 1: push a new branch directly 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 pushes a new branch (dev) to the shared repo< | * user1 pushes a new branch (dev) to the shared repo< | ||
Line 44: | Line 85: | ||
</ | </ | ||
- | ===== method 2: start a local branch and push it to the remote | + | ===== Advanced Topics |
- | * shared repo has one branch: master | + | ==== creating a new remote |
- | * user1 creates | + | we want to create |
- | $ git checkout -b dev | + | < |
+ | $ git push origin origin/ | ||
</ | </ | ||
- | * push the new local branch | + | |
- | $ git push origin | + | ==== remove a remote |
+ | < | ||
+ | git push origin | ||
</ | </ | ||
- | * 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 - delete the local branch and create it again with --track< | ||
- | $ git checkout master | ||
- | $ git branch -D dev | ||
- | $ git checkout --track -b dev origin/dev | ||
- | </ | ||
- | * option 2 - manually edit your .git/config by adding lines similar to the following< | ||
- | [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 /path/to/shared/repo | + | ===== External Links ===== |
- | * [new branch] | + | * http://cheat.errtheblog.com/s/git |
- | Already up-to-date. | + | |
- | $ git checkout --track -b dev origin/dev | ||
- | $ git branch -a | ||
- | * dev | ||
- | master | ||
- | remotes/ | ||
- | remotes/ | ||
- | remotes/ | ||
- | </ | ||