33.1. Remote tracking branches
Your local Git repository contains references to the state of the branches on the remote repositories to which it is connected. These local references are called remote-tracking branches.
You can see your remote-tracking branches with the following command.
# list all remote branches
git branch -r
To update remote-tracking branches without changing local branches you use the
git fetch
command. See Updating your remote-tracking branches with git fetch for more information.
It is safe to delete a remote branch in your local Git repository, this does not affect a remote repository. The next time you run the
git fetch
command, the remote branch is recreated. You can use the following command for that.# delete remote branch from origin
git branch -d -r origin/[remote_branch]
33.2. Delete a remote branch
To delete the branch in a remote repository use the following command.
# delete branch in a remote repository
git push [remote] --delete [branch]
33.3. Tracking branches
Branches can track another branch. This is called to have an upstream branch and such branches can be referred to as tracking branches.
Tracking branches_ allow you to use the
git pull
and git push
command directly without specifying the branch and repository.
If you clone a Git repository, your local master branch is created as a tracking branch for the master branch of the originrepository (short:_origin/master_) by Git.
You create new tracking branches by specifying the remote branch during the creation of a branch. The following example demonstrates that.
# setup a tracking branch called newbrach
# which tracks origin/newbranch
git checkout -b newbranch origin/newbranch
Instead of using the
git checkout
command you can also use the git branch
command.# origin/master used as example, but can be replaced
# create branch based on remote branch
git branch [new_branch] origin/master
# use --track,
# default when the start point is a remote-tracking branch
git branch --track [new_branch] origin/master
The
--no-track
allows you to specify that you do not want to track a branch. You can explicitly add a tracking branch with the git branch -u
command later.# instruct Git to create a branch which does
# not track another branch
git branch --no-track [new_branch_notrack] origin/master
# update this branch to track the origin/master branch
git branch -u origin/master [new_branch_notrack]
To see the tracking branches for a remote repository (short: remote) you can use the following command.
# show all remote and tracking branches for origin
git remote show origin
An example output of this might look as follows.
* remote origin
Fetch URL: ssh://test@git.eclipse.org/gitroot/e4/org.eclipse.e4.tools.git
Push URL: ssh://test@git.eclipse.org/gitroot/e4/org.eclipse.e4.tools.git
HEAD branch: master
Remote branches:
integration tracked
interm_rc2 tracked
master tracked
smcela/HandlerAddonUpdates tracked
Local branches configured for 'git pull':
integration rebases onto remote integration
master rebases onto remote master
testing rebases onto remote master
Local refs configured for 'git push':
integration pushes to integration (up to date)
master pushes to master (up to date)
0 comments:
Post a Comment