从 GitLab 迁移到 GitHub 时,在执行
git push --mirror <URL>
后,我注意到 git ls-remote --refs
(在 GitHub 上的目标存储库中)显示了一些以 refs/merge-requests/
前缀开头的参考。
由于它们与 GitHub 无关(它们仅由 GitLab 使用),所以我想删除它们;我该怎么办?
换句话说,如何从远程删除符合搜索/过滤条件的引用?
您可以使用这个单行 shell 脚本来执行此操作(您也可以在 Windows 上使用它,例如使用 Git Bash):
git ls-remote --refs | grep refs/merge-requests/ | cut -f 2 | xargs -I {} git push --delete origin {}
它:
grep refs/merge-requests/
过滤它们,仅包含包含 refs/merge-requests/
,git push --delete origin
以从远程删除它们。备注:
origin
(尽管可能是)