繁体   English   中英

撤消 Gerrit 推送 GitLab

[英]Undo Gerrit push on GitLab

我不小心对 GitLab 存储库进行了 Gerrit 风格的推送。

也就是说,在我的本地分支上,我做了:

$ git push origin HEAD:refs/for/master
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 3.06 KiB | 184.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0), pack-reused 0
To gitlab.domain-name.com:project-name.git
 * [new reference]   HEAD -> refs/for/master

当我应该做的事情很简单时:

$ git push -u origin branch-name

据我所知,此参考并未显示 GitLab web GUI 上的任何地方。

我该如何撤消此操作? 我需要吗?

您可以使用以下命令删除远程上的引用:

git push -d origin refs/for/master

完整演示:

$ git ls-remote
From git@gitlab.domain.tld:repository.git
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    HEAD
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    refs/heads/master

$ git push origin HEAD:refs/for/master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 286 bytes | 286.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To gitlab.domain.tld:repository.git
 * [new branch]      HEAD -> refs/for/master

$ git ls-remote
From git@gitlab.domain.tld:repository.git
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    HEAD
a5b0640960e5a1f26e784d2f93f94f0ec29d5f51    refs/for/master
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    refs/heads/master

$ git push -d origin refs/for/master
To git@gitlab.domain.tld:repository.git
 - [deleted]         refs/for/master

$ git ls-remote
From git@gitlab.domain.tld:repository.git
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    HEAD
9379c44dc1925987c6d2ebdd62e2c91435cf3c8a    refs/heads/master

Git refspec 使用两个 refs(来源

  • refs/heads来跟踪本地分支。
  • refs/remotes/跟踪远程分支。

refs/for/是 Gerrit 特定的命名空间,因此不应影响您的 repo,因为您没有使用 Gerrit 服务器。 来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM