在git中合并存储库时如何处理标记冲突

在git中合并存储库时如何处理标记冲突,git,Git,我正在使用ReadTree合并三个git回购。存在标记名冲突。是否有某种方法可以在发生冲突时从远程设备“获取”并映射标记名?是的,有点像(因此可能“否”更准确,但您可以通过工作获得所需的内容)。也就是说,没有办法有条件地映射标记,但始终映射标记是很容易的 当您运行git fetch remote(不带--tags)时,git fetch使用remote.remote.fetch下的配置项来控制获取哪些引用名称。当您运行git fetch remote--tags时,它的行为就像您在命令行上给它r

我正在使用ReadTree合并三个git回购。存在标记名冲突。是否有某种方法可以在发生冲突时从远程设备“获取”并映射标记名?

是的,有点像(因此可能“否”更准确,但您可以通过工作获得所需的内容)。也就是说,没有办法有条件地映射标记,但始终映射标记是很容易的

当您运行
git fetch remote
(不带
--tags
)时,
git fetch
使用
remote.remote.fetch
下的配置项来控制获取哪些引用名称。当您运行
git fetch remote--tags
时,它的行为就像您在命令行上给它
refs/tags/*:refs/tags/*
一样,或者相当于将配置中的所有条目临时替换为一个refspec

查看分支的实际refspec,您将看到,例如,
remote.origin.fetch
设置为
+refs/heads/*:refs/remotes/origin/*
+
会导致强制更新(即,即使结果不是快进,也会更新)其余部分将遥控器的
refs/heads/master
复制到本地
refs/remotes/origin/master
(如果需要,创建它)

标记位于
refs/Tags/
名称空间中(vs分支,位于
refs/heads/
中,远程分支位于
refs/remotes/
)。没有“远程标记”这样的东西,但你可以自己编出来,就像过去没有“注释”这样的东西一样,现在有了
refs/notes/
名称空间。因此:

git config --add remote.origin.fetch 'refs/tags/*:refs/rtags/origin/*'
将为
remote.origin.fetch
的配置添加一行,这将使
git fetch origin
带上它们的标记,但将它们存储在这个新的“remote tags”名称空间中

一旦抓取完成(并且您已经为其他远程设备运行了其他抓取),您就可以对
refs/rtags/*
中的任何内容进行自己的映射


1假设你没有被设置为镜子