Вызначце, калі мы праверылі галіна або тэг з мярзотнікам

У сцэнары, я хацеў бы, каб вызначыць, калі тэг або філіял быў выняты.

На дадзены момант, у мяне ёсць:

git describe --tags

Ён будзе паказваць імя тэга, але калі мы на галінцы, гэта выкліча памылку (з вяртаеце = 0 !):

fatal: No names found, cannot describe anything.

Ці магу я разлічваць на такія паводзіны ці ёсць лепш/афіцыйны спосаб зрабіць гэта?

Ёсць некаторыя выпадкі, якія ня злоўлены гэтым метадам, што я павінен ведаць?

2
@iberbeu Так, я заўважыў, што, мярзотнік апісаць --tags не добра для гэтага, убачыць мой уласны адказ ^^
дададзена аўтар Matthieu Napoli, крыніца
@iberbeu Так, я заўважыў, што, мярзотнік апісаць --tags не добра для гэтага, убачыць мой уласны адказ ^^
дададзена аўтар Matthieu Napoli, крыніца
Я на галінцы і мярзотнік апісваюць --tags ня кідае якую-небудзь памылку. Ён проста паказвае першы дасягальны тэг, дзе вы знаходзіцеся
дададзена аўтар iberbeu, крыніца
Я на галінцы і мярзотнік апісваюць --tags ня кідае якую-небудзь памылку. Ён проста паказвае першы дасягальны тэг, дзе вы знаходзіцеся
дададзена аўтар iberbeu, крыніца

8 адказы

Вы можаце выкарыстоўваць мярзотнік сімволікай-вых ГАЛАВЫ , каб праверыць, калі вы знаходзіцеся на галінку і атрымаць яго імя:

> git checkout master
[....]
> git symbolic-ref HEAD
refs/heads/master
> echo $?
0

Калі вы праверылі тэг, вы атрымаеце паведамленне пра памылку:

> git checkout some_tag
[....]
> git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
> echo $?
128
5
дададзена

Вы можаце выкарыстоўваць мярзотнік сімволікай-вых ГАЛАВЫ , каб праверыць, калі вы знаходзіцеся на галінку і атрымаць яго імя:

> git checkout master
[....]
> git symbolic-ref HEAD
refs/heads/master
> echo $?
0

Калі вы праверылі тэг, вы атрымаеце паведамленне пра памылку:

> git checkout some_tag
[....]
> git symbolic-ref HEAD
fatal: ref HEAD is not a symbolic ref
> echo $?
128
5
дададзена

(Змяніць) лепш, чым тое, што ў мяне было раней:

if read what where huh; test "$what" = ref:
then echo On branch ${where#refs/heads/}
else echo "not on any branch; last checkout was:"
     git reflog|sed '/checkout:/!d;q'
fi < "`git rev-parse --git-dir`"/HEAD

раскажа вам, дзе ваш апошні выезд прыйшоў.

git log HEAD^! --oneline --decorate

раскажа вам усё знакавыя імёны для бягучай фіксацыі.

1
дададзена

(Змяніць) лепш, чым тое, што ў мяне было раней:

if read what where huh; test "$what" = ref:
then echo On branch ${where#refs/heads/}
else echo "not on any branch; last checkout was:"
     git reflog|sed '/checkout:/!d;q'
fi < "`git rev-parse --git-dir`"/HEAD

раскажа вам, дзе ваш апошні выезд прыйшоў.

git log HEAD^! --oneline --decorate

раскажа вам усё знакавыя імёны для бягучай фіксацыі.

1
дададзена

Ну пасля некаторага тэставання вакол, атрымліваецца мярзотнік апісаць --tags быў не вельмі надзейным (у адным выпадку я праверыў галінку ён зрабіў нешта вярнуць).

Я скончыў з выкарыстаннем:

git branch | grep '^*'

Гэта вяртае выбраную галіна. У выпадку, калі я праверыў тэг, гэта верне:

* (no branch)

У маім сцэнары я разабраць радок, каб праверыць, калі ён утрымоўвае (без філіялаў) .

0
дададзена
і што, калі вы на галінцы і на пазнацы у той час? У гэтым выпадку мярзотнік кажа вам, што вы не на галінцы, у той час як вы на самой справе
дададзена аўтар iberbeu, крыніца

Ну пасля некаторага тэставання вакол, атрымліваецца мярзотнік апісаць --tags быў не вельмі надзейным (у адным выпадку я праверыў галінку ён зрабіў нешта вярнуць).

Я скончыў з выкарыстаннем:

git branch | grep '^*'

Гэта вяртае выбраную галіна. У выпадку, калі я праверыў тэг, гэта верне:

* (no branch)

У маім сцэнары я разабраць радок, каб праверыць, калі ён утрымоўвае (без філіялаў) .

0
дададзена
і што, калі вы на галінцы і на пазнацы у той час? У гэтым выпадку мярзотнік кажа вам, што вы не на галінцы, у той час як вы на самой справе
дададзена аўтар iberbeu, крыніца

git status (or git branch) to know on which branch you are. Note: you're always on a branch: the default branch is master.

Выкарыстоўвайце <�моцны> мярзотнік тэг , каб даведацца спіс тэгаў на бягучай галінцы.

0
дададзена
Калі я знаходжуся на тэгу мярзотнік філіял пакажа, што я на * (без Гиса) , так што я мяркую, што я не заўсёды на галінцы? Таксама мярзотнік тэг не вельмі карысна ведаць аб <�я>, які Тэг Я (гэта значыць якой тэг я праверыў).
дададзена аўтар Matthieu Napoli, крыніца
(Я адказаў размяшчэнне яшчэ адзін адказ)
дададзена аўтар Claudio, крыніца

git status (or git branch) to know on which branch you are. Note: you're always on a branch: the default branch is master.

Выкарыстоўвайце <�моцны> мярзотнік тэг , каб даведацца спіс тэгаў на бягучай галінцы.

0
дададзена
Калі я знаходжуся на тэгу мярзотнік філіял пакажа, што я на * (без Гиса) , так што я мяркую, што я не заўсёды на галінцы? Таксама мярзотнік тэг не вельмі карысна ведаць аб <�я>, які Тэг Я (гэта значыць якой тэг я праверыў).
дададзена аўтар Matthieu Napoli, крыніца
(Я адказаў размяшчэнне яшчэ адзін адказ)
дададзена аўтар Claudio, крыніца