How do you stop tracking a remote branch in Git?

branch, git, git-track

Solution

As mentioned in Yoshua Wuyts' answer, using `git branch`:

git branch --unset-upstream

Other options:

You don't have to delete your local branch.

Simply delete the local branch that is tracking the remote branch:

git branch -d -r origin/<remote branch name>

`-r, --remotes` tells git to delete the remote-tracking branch (i.e., delete the branch set to track the remote branch). This will not delete the branch on the remote repo!

See "Having a hard time understanding git-fetch"

there's no such concept of local tracking branches, only remote tracking branches. So `origin/master` is a remote tracking branch for `master` in the `origin` repo

As mentioned in Dobes Vandermeer's answer, you also need to reset the configuration associated to the local branch:

git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge

Remove the upstream information for `<branchname>`. If no branch is specified it defaults to the current branch.

(git 1.8+, Oct. 2012, commit b84869e by Carlos Martín Nieto (`carlosmn`))

That will make any push/pull completely unaware of `origin/<remote branch name>`.

Problem

How do you stop tracking a remote branch in Git? I am asking to stop tracking because in my concrete case, I want to delete the local branch, but not the remote one. Deleting the local one and pushing the deletion to remote will delete the remote branch as well: - How do I delete a Git branch both locally and in GitHub? Can I just do `git branch -d the_branch`, and it won't get propagated when I later `git push`? Will it only propagate if I were to run `git push origin :the_branch` later on?

Original source

Related problems