Как вы нажимаете тег Git на ветку с помощью refspec?
Я хочу заставить нажать, например, мой тег 1.0.0
программа master
филиала.
теперь я делаю следующее:
git push production +1.0.0:master
Я хочу, чтобы заставить толчок, потому что все, что меня волнует, это то, что код внутри 1.0.0
тег помещается в тег master
ветвь на удаленном репозитории.
что я делаю не так?
обновление #1
когда я SSH в мой сервер, где мой Git репозиторий и выполнить git branch -l
, Я не вижу master
филиала списке.
обновление #2
после git tag -l
из удаленного репозитория Git, я вижу, что master
указан, что означает, что когда я запустил следующее:
git push production 1.0.0:master
он на самом деле толкнул тег и создал тег с именемmaster
, а не новый филиал.
Я хочу чтобы в основном нажать на содержание тега 1.0.0
на master
ветвь удаленного репозитория Git.
4 ответа:
Это, вероятно, не удается, потому что
1.0.0
- это аннотированный тег. Возможно, вы видели следующее сообщение об ошибке:ошибка: попытка записать объект non-commit в ветку refs / heads / master
аннотированные теги имеют свой собственный тип объекта, который указывает на объект фиксации с тегами. Ветви не могут с пользой указывать на объекты тегов, только фиксируют объекты. Вам нужно "очистить" аннотированный тег назад, чтобы зафиксировать объект и нажать на него вместо.
git push production +1.0.0^{commit}:master git push production +1.0.0~0:master # shorthand
есть другой синтаксис, который также будет работать в этом случае, но это означает что-то немного другое, если объект тега указывает на что-то другое, чем фиксация (или объект тега, который указывает на (объект тега, который указывает на ...) фиксацию).
git push production +1.0.0^{}:master
эти синтаксисы отслаивания тегов описаны в git-rev-parse (1) под С Указанием Изменений.
Я создаю тег, как это, а затем я нажимаю его на GitHub:
git tag -a v1.1 -m "Version 1.1 is waiting for review" git push --tags Counting objects: 1, done. Writing objects: 100% (1/1), 180 bytes, done. Total 1 (delta 0), reused 0 (delta 0) To git@github.com:neoneye/triangle_draw.git * [new tag] v1.1 -> v1.1
для нажатия одного тега:
git push <reponame> <tagname>
например,
git push production 1.0.0
. Теги не привязаны к ветвям, они привязаны к коммитам.Если вы хотите иметь содержимое тега в главной ветви, сделайте это локально на вашем компьютере. Я бы предположил, что вы продолжили развиваться в своем местном главном филиале. Тогда просто
git push origin master
должно хватить.