2017-08-02 31 views
1

我正在使用回购工具来管理多个存储库。回购工具无法根据标签拉动

这是我的示例清单文件,我在我的修订版中给了一个标签名 - 'firsttag'。

当我做了回购同步,它说 -

Fetching project repo1 
fatal: Couldn't find remote ref refs/heads/firsttag 
<?xml version="1.0" encoding="UTF-8"?> 

xml文件

<!-- <default revision="refs/heads/master" --> 
    <default revision='firsttag' 
      remote="github" 
      sync-j="4" /> 

    <project name="repo1" remote="github" path="repo1"/> 
    <project name="repo2" remote="github" path="repo2"/> 

</manifest> 

回答

1

revision="firsttag"revision="refs/heads/firsttag"指分支机构。对于一个标签,它应该是revision="refs/tags/firsttag"

如果您使用的是Gerrit,您会看到类似refs/changes/33/44433/1的裁判。如果你想使用这个参考,它应该是revision="refs/changes/33/44433/1"

对于特定项目,如果您知道提交,则可以同时使用revisionupstream。当你想要一个旧的分支提交时,它非常有用。请注意,项目中的revision将覆盖default中的一个。

<project name="repo1" remote="github" path="repo1" 
     revision="3b9211fe8c87bf424c2bf128b1dec572375b318f" 
     upstream="somebranch"/> 

这是repo manifest -r的输出。 upstream可以是标签或任何参考。

只有在值为参考名称时才可以使用revision

<project name="repo1" remote="github" path="repo1" 
     revision="refs/tags/secondtag"/> 
+0

谢谢,标签的作品,但当它克隆回购,它不列出任何分支。它说“目前不在任何分支” – user1050619

+0

@ user1050619它作为设计工作。 'git branch -a'应该列出所有的追踪分支。这有点像'git checkout ',它将处于分离的HEAD状态。 – ElpieKay

+0

谢谢。如何从分离的HEAD状态指向标签的HEAD更改? – user1050619