2016-09-15 26 views
0

とコミットエラー:タグgitのは、私は、「タグ」という名前のタグで私の頭をタグ付けするために、次のコマンドを使用している「タグ」のタグ

fatal: tag shorthand without < tag >

別の名前のタグで同じエラーは発生しません。私はgitがこの "タグ"をそのサブコマンドとして扱うと思う。たぶんそれはよく使われるケースではないかもしれませんが、 "タグ"をリモートのレポにプッシュすることは可能でしょうか?他のタグを押して欲しいとは思いません。

git push --tags 

+3

あなたがGitのプッシュのドキュメントを見ると(つまり、Gitは--help'押し '行います。タグの検索)。 'git push'には、タグをプッシュするために使用できることを明示的に指定するために使用できる特定のキーワードがあります。このキーワードは単純に 'tag'(驚き!)です。だから理論的に 'git push tag tag'を実行することができます。最初の' tag'はキーワードで、 'tag'はタグ名です。しかし、私は以下の答えに同意します。タグの名前を付けることはお勧めできません。 – Alderath

+0

"git pushタグタグ"と "git push - タグタグ"だけを試しました。 ありがとうございました! :) – forestgril

答えて

1

あなたはgitのコード(下のリンク)を見てみるならば、我々はプッシュ中にそれがキーワードタグのためにチェックしていることがわかります。

https://github.com/tnachen/git/blob/master/builtin/push.c

短い答え:タグに意味のある名前を付けて使用していないのgitキーワード

static void set_refspecs(const char **refs, int nr) 
{ 
    int i; 
    for (i = 0; i < nr; i++) { 
     const char *ref = refs[i]; 
     if (!strcmp("tag", ref)) { 
      char *tag; 
      int len; 
      if (nr <= ++i) 
       die("tag shorthand without <tag>"); 
      len = strlen(refs[i]) + 11; 
      if (deleterefs) { 
       tag = xmalloc(len+1); 
       strcpy(tag, ":refs/tags/"); 
      } else { 
       tag = xmalloc(len); 
       strcpy(tag, "refs/tags/"); 
      } 
      strcat(tag, refs[i]); 
      ref = tag; 
     } else if (deleterefs && !strchr(ref, ':')) { 
      char *delref; 
      int len = strlen(ref)+1; 
      delref = xmalloc(len+1); 
      strcpy(delref, ":"); 
      strcat(delref, ref); 
      ref = delref; 
     } else if (deleterefs) 
      die("--delete only accepts plain target ref names"); 
     add_refspec(ref); 
    } 
} 
関連する問題