git: delete remote branch from mirror tree

git mirror repository sync
git push --mirror

I built a repository using

git clone --mirror <url>

I want to remove some remote branches, but I get the following:

$ git push origin :b
error: --mirror can't be combined with refspecs

... or

$ git push --delete b
fatal: --delete doesn't make sense without any refs

Also, git branch -D b does not touch the remote.

Is there a way to remove remote branches from a mirror clone or do I have to build another clone for that?

In fact, you can delete any branch of any repository without even cloning it:

git push <url> +:refs/heads/b

The only caveat is that you must be inside a git repository, any repository - you can even create an empty repository to do just that and then delete it.

Surely enough, you can do that inside the mirror too, just note that you will only see the branch go away after doing a git remote prune origin.

git: delete remote branch from mirror tree - git, I built a repository using git clone --mirror <url> I want to remove some remote branches, but I get the following: $ git push origin :b error: --mirror can't be  To delete a remote branch, we do not use the "git branch" command - but instead "git push" with the "--delete" flag: $ git push origin --delete feature/login Deleting both a local and a remote branch

git-remote Documentation, cat-file · check-ignore · checkout-index · commit-tree · count-objects · diff-index git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f] remove <name> git remote set-head <name> (-a | --auto | -d | --delete | <branch>) git When a fetch mirror is created with --mirror=fetch , the refs will not be stored in the​  With -t <branch> option, instead of the default glob refspec for the remote to track all branches under the refs/remotes/<name>/ namespace, a refspec to track only <branch> is created. You can give more than one -t <branch> to track multiple branches without grabbing all branches.

From a bare repo (clone a repository using --mirror option), you can delete branch in mirrored repo and push deletion with --mirror option :

$> git clone --mirror <url>
$> git branch -D branch_to_delete_1
$> git branch -D branch_to_delete_2
$> git push --mirror

It's allow you to delete multiple branches once.

More info : https://git-scm.com/docs/git-push

Reset and sync local repository with remote branch, cat-file · check-ignore · checkout-index · commit-tree · count-objects · diff-index · for-each- git remote [-v | --verbose] git remote add [-t <branch>] [-m <master>] [-f​] [--push] <name> <newurl> git remote set-url --delete [--push] <name> <url> git remote In mirror mode, enabled with \--mirror , the refs will not be stored in the  The git manual says -p, --prune After fetching, remove any remote-tracking branches which no longer exist on the remote. Check out our new e-book: Growing Rails Applications in Practice. Learn to structure large Ruby on Rails codebases with the tools you already know and love.

Git Prune, This git pro-tip will turn your local repository into a mirror image of the remote of your choice. Simply follow these steps to get back to frustration-free development​  If a working tree is deleted without using git worktree remove, then its associated administrative files, which reside in the repository (see "DETAILS" below), will eventually be removed automatically (see gc.worktreePruneExpire in git-config[1]), or you can run git worktree prune in the main or any linked working tree to clean up any stale administrative files.

Moving git repository and all its branches, tags to a new remote , The git prune command is a housekeeping utility that cleans up f91c3433eae245767b9cd5bdb46cd127ed38df26 tree No git remote prune origin will only delete the refs to remote branches that no longer exist. Git stores  So to delete a branch on a remote repository, you need to add the --delete option to git push. You type git push, the remote repository name, the --delete option, and the name of the branch you want to delete: git push origin --delete more-letters You should see a message that the remote more-letters branch has been deleted.

Git Version Control Cookbook: Leverage version control to , Sometimes you need to move your existing git repository Remove "old repo" remote: git clone --mirror URL git remote add NEW-REMOTE URL git push --​git-dir <repo_dir>/.git --work-tree <repo_dir> git push new-origin --mirror --git-dir  Remote references are references (pointers) in your remote repositories, including branches, tags, and so on. You can get a full list of remote references explicitly with git ls-remote <remote>, or git remote show <remote> for remote branches as well as more information. Nevertheless, a more common way is to take advantage of remote-tracking