问题
I want to create a branch from an existing remote branch (let's say remote-A) and then commit the changes to repo.
I have used the below commands to create a local branch from the existing remote-A
$git checkout remote-A
git branch
master
* remote-A
Now I have created local-B from Remote A using the below commands
git branch local-B
git checkout local-B
How do I make sure the changes I have on local-B are on top of remote-A so that when I push local-B to the remote repo, the changes are on top of remote-A?
回答1:
you want to create branch on base of remote-A, make changes on it and then push them on remote-A?
git checkout -b remote-A
git pull origin remote-A
git checkout -b remote-B
make changes on remote-B
git commit -a -m 'describe changes on remote-B branch'
git checkout remote-A
git merge remote-B
git push origin remote-A
回答2:
Old post, still I'd like to add what I do.
1. git remote add <remote_name> <repo_url>
2. git fetch <remote_name>
3. git checkout -b <new_branch_name> <remote_name>/<remote_branch_name>
This series of commands will
- create a new remote,
- fetch it into your local so your local git knows about its branches and all,
- create a new branch from the remote branch and checkout to that.
Now if you want to publish this new local branch to your remote and set the upstream url also
git push origin +<new_branch_name>
Also, if only taking in remote changes was your requirement and remote already exists in your local, you could have done, instead of step 2 and 3,
git pull --rebase <remote_name> <remote_branch_name>
and then opted for
git mergetool
(needs configurations separately) in case of any conflicts, and follow console instructions from git.
回答3:
To make sure your changes are on top, you must not pull from remote. you must fetch and rebase. il will be something like this:
fetch->stash->rebase->stash pop->commit->push
来源:https://stackoverflow.com/questions/24301914/git-create-local-branch-from-existing-remote-branch