= How to remove a git branch in a dist-git repository Historically we did not allow to remove git branches in dist-git repository, but FESCo recently approved their removal *if and only if* all the commits in the branch to be deleted can be reached from another branch. This is a requirement to ensure that if any of the commits were used in a build, we still have the commit accessible and thus we are able to reproduce the build if needed. There is a script in the releng repository to use to check if a branch can safely be deleted. So here are the steps to follow to remove the branch `` from the package ``. . Clone the releng repo if you do not already have it: + ---- git clone https://pagure.io/releng.git ---- . Pull the latest changes: + ---- pushd releng && git pull --rebase && popd ---- . Clone the `` package locally: + ---- fedpkg clone ---- . Checkout the branch: + ---- cd clone && git checkout ---- . Run the script: + ---- python ../releng/scripts/distgit-branch-unused.py ---- + (If needed, see the ``--help`` of the script for more information) . If the script returns that the branch is safe to delete: .. Go to pkgs01 as root + ---- ssh pkgs01.rdu3.fedoraproject.org ---- .. Go to the git repository: + ---- cd /srv/git/repositories//.git ---- .. Move the head of the branch (this allows to recover it later if needed): + -- ---- mv refs/heads/ heads_ ---- Sometimes the ref is in the `packed-refs` file, in that case: ---- grep packed-refs > heads_ ---- Then remove the line from `packed-refs` file -- . On your local clone of ``, check that the branch was deleted upstream: + -- ---- git fetch -p ---- This should show something like: ---- $ git fetch -p From ssh://pkgs.fedoraproject.org// - [deleted] (none) -> origin/ ---- --