gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:47:35 25 4
gpt4 key购买 nike

我目前有 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 引用,只需从远程删除它(使用以下方法之一):

git push git@github.com:company/project.git :refs/for/master
git push git@github.com:company/project.git --delete for/master

选项 2:重命名引用

这是您可以重命名它的一种方法,尽管它的工作量要大得多。首先,您需要获取 refs/for/master 引用的对象。我知道的唯一方法是编辑你的 repo 的 .git/config 来获取它。

为方便起见,假设您将 git@github.com:company/project.git 作为名为 origin 的远程添加到您的本地存储库:

git remote add origin git@github.com:company/project.git

然后假设您在本地克隆的 .git/config 文件中将 fetch 配置设置为以下内容:

[remote "origin"]
url = git@github.com:company/project.git
fetch = refs/for/*:refs/remotes/origin/for/*

然后一旦您 git fetch origin,您可以将引用重命名为其他内容并再次推送它(尽管您仍然需要删除旧引用):

git push origin :refs/for/master origin/for/master:for/master

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

您可以在 chapter 9.5 Git Internals - The Refspec 中阅读有关远程 repo 的 fetch refspec 配置的更多信息的 FREE online Pro Git book .

关于git - 如何从 git 存储库中删除冲突的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18222132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com