Eperimental or dropped features can be archived as a reference (see git update-ref for a documentation). Refs can be pushed to the repository normally by push (see git push for a documentation). Refs can be fetched from the repository normally by fetch (see git fetch for a documentation).
Example:
-
git update-ref refs/archive/bfdBacktrace bfdBacktrace
will create a reference named refs/archive/bfdBacktrace from a local branch bfdBacktrace -
git push origin refs/archive/bfdBacktrace:refs/archive/bfdBacktrace
will push a local reference to the remote -
git fetch origin refs/archive/bfdBacktrace:refs/archive/bfdBacktrace
will fetch the remote reference from the remote
One can then drop archive branches and archive references. Commits are safe but the history is cleaner.
Archived branches can be listed with git ls-remote
-
git ls-remote origin
will list all remote references in the remote