如何从git存储库中删除冲突引用?

如何从git存储库中删除冲突引用?,git,github,Git,Github,我目前有2个符号引用,名称为master,如下所示 git ls-remote git@github.com:company/project.git master 9547e4ba01d67e1ff3xxxxxd5110eaaf2f48 refs/for/master 06106b7f1005dbb9f1xxxxxxxx456d2be84346c refs/heads/master 如何删除或重命名refs/for/master,使ls-remote命令只给出一个这样的结果- git l

我目前有2个符号引用,名称为master,如下所示

git ls-remote git@github.com:company/project.git master
9547e4ba01d67e1ff3xxxxxd5110eaaf2f48    refs/for/master
06106b7f1005dbb9f1xxxxxxxx456d2be84346c refs/heads/master
如何删除或重命名refs/for/master,使ls-remote命令只给出一个这样的结果-

git ls-remote git@github.com:company/project.git master
06106b7f1005dbb9f1xxxxxxxx456d2be84346c refs/heads/master
选项1:删除引用 如果要删除
refs/for/master
引用,只需从远程删除它(使用以下选项之一):

选项2:重命名引用 这是一种可以重命名它的方法,尽管这需要做更多的工作。首先,需要获取
refs/for/master
引用的对象。我知道的唯一方法是编辑您的回购协议的
.git/config
,以获取它

为了方便起见,假设您添加了
git@github.com:company/project.git
作为本地回购的远程调用
origin

git remote add origin git@github.com:company/project.git
然后,假设您将本地克隆的
.git/config
文件中的
fetch
配置设置为:

git push git@github.com:company/project.git :refs/for/master
git push git@github.com:company/project.git --delete for/master
[remote "origin"]
    url = git@github.com:company/project.git
    fetch = refs/for/*:refs/remotes/origin/for/*
然后,一旦您
git fetch origin
,您就可以将引用重命名为其他引用并再次推送它(不过仍然需要删除旧引用):

:refs/for/master
删除旧引用,而
origin/for/master:for/master
将该引用的旧副本作为新的远程引用推送到/master


您可以在的中阅读有关远程回购的
fetch
refspec配置的更多信息。

有关
git push
文档,请参阅。
git push origin :refs/for/master origin/for/master:for/master