объясните, что команда для мерзавца удаляет удаленное ответвление

Команда для удаления удаленного ответвления в мерзавце следующая

git push origin :/heads/[feature-name]  
       [feature-name] being the name of the branch

Это делает задание отлично, верный это.
Однако путем ввода его, я не могу сделать ассоциацию, которая, что я ввожу, на самом деле удаляет ответвление.

Можно ли описать, почему это на самом деле работает? (мой вопрос не имеет никакого отношения, как он реализован),

Понимание этого, надо надеяться, поможет мне получить лучшее схватывание того, как мерзавец работает.

6
задан Dimitris Baltas 15 March 2010 в 13:49
поделиться

2 ответа

Формат git push (для нашей части) - :

git push <repository> <src>:<dst>

Поэтому использование git push origin :/heads/[feature-name] говорит git'у, что нужно вытолкнуть пустую ветку в feature-name ветку origin. Поэтому вы очищаете её.

8
ответ дан 16 December 2019 в 21:38
поделиться

Имя ветки - это метка, указывающая на SHA коммита. Вы фактически удаляете эту метку. Поскольку в сохранении этой ветки нет никакого смысла, она удаляется и теряется.

Кроме того, команда "delete" имеет такой синтаксис, как описано на странице man для git push:

git push origin :experimental Найти ссылку, соответствующую experimental в репозитории origin (например. refs/heads/experimental), и удалите его.

В качестве альтернативы можно использовать опцию --delete.

0
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: