I want to create a branch from an existing remote branch (let\'s say remote-A) and then commit the changes to the repository.
I have used the below commands to create a
I wanted to create a new local tracking branch from a remote git branch with a different name.
So I used this command:
git checkout -b <new_branch_name> --track <remote_name>/<remote_branch_name>
Example:
git checkout -b local-A --track origin/remote-A
I saw it in multiple comments to the above answers, but it's good to have it in the first sight.
Tracking branches are local branches that have a direct relationship to a remote branch. If you're on a tracking branch and type git pull, Git automatically knows which server to fetch from and which branch to merge in.
This should work:
git checkout --track origin/<REMOTE_BRANCH_NAE>
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
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
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
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.