(ほとんど) 空のブランチをプッシュする
ブランチをリモート リポジトリにプッシュするには、ブランチに少なくとも 1 つのコミットが必要です。頭がまったくない場合、git はoriginに送信するものがありません。これは、空のコミットで空のブランチを作成することで解決できます。例えば:
git symbolic-ref HEAD refs/heads/empty_branch
rm .git/index
git commit --allow-empty -m 'Initialize empty branch.'
git branch -M empty_branch master
git push --force origin
完了すると、現在のマスターとオリジン/マスターの両方に、ファイルのないコミットが 1 つだけ含まれます。git がガベージ コレクションを実行すると、リポジトリ内の基になるオブジェクトが最終的にリープされます。
すべてのタグを削除
すべてのローカル タグとリモート タグを削除する場合は、タグをローカルで削除する前に、一連の空の参照をリモートにプッシュできます。例えば:
# Delete all tags present on the local host from the remote
# host in one push operation.
git for-each-ref --format=':%(refname)' --shell refs/tags |
xargs git push origin
# Delete all local tags.
git tag -d $(git tag)