我正在清理 git 存储库的拉取请求 (PR)。创建了一个 PR 来合并分支 B,该分支后来被认为已弃用并在合并之前被删除。结果,分支 B 被删除了,并且这个 PR 没有出现在 Bitbucket 的拉取请求列表中。但是,如果我使用git show-ref
,则此 PR 位于 ref 列表以及远程存储库历史记录中。有没有办法在远程存储库中清除这个 PR?
master branch
|
|
| * branch B, Pull Request
| |
| /
| /
| /
|/
*
|
|
添加:此 PR 存在于远程存储库中。我可以将裸副本复制到本地并使用 删除本地 PR git reflog expire --expire=now --all && git gc --prune=now --aggressive
,但不知道如何在远程存储库中删除此 PR。
我在使用 BFG 清理存储库历史记录时遇到了这个问题,如此处所述。由于rejected refs,我对remote 的本地更改推送被拒绝(如下图,这里是关于这个主题的相关讨论)
(base) ****@*****:~/*****/abcde.git$ git push --force
Username for *****************:
Password for *****************:
Counting objects: 17811, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (10604/10604), done.
Writing objects: 100% (17811/17811), 367.27 MiB | 2.16 MiB/s, done.
Total 17811 (delta 6545), reused 17811 (delta 6545)
remote: Resolving deltas: 100% (6545/6545), done.
remote: You are attempting to update refs that are reserved for Bitbucket's pull request functionality. Bitbucket manages these refs automatically, and they may not be updated by users.
remote: Rejected refs:
remote: refs/pull-requests/2/from
remote: refs/pull-requests/2/merge
remote: refs/pull-requests/5/from
remote: refs/pull-requests/5/merge
remote:
更新:
最后,我通过创建一个新的空远程存储库并将我的本地 git 镜像推送到那里绕过了 ref-conflict 问题。
cd ~/<repo_directory/repo_name>
git remote set-url origin <bitbucket_URL>
git push --mirror