Это старый пост, но я наткнулся на него в поисках чего-то похожего, дам более полное объяснение.
Теги и ветки в git называются ссылками или «ссылками». Вы можете переместить ссылку в любое время в новую фиксацию и, таким образом, создать свободные фиксации, если вы переместитесь назад во времени. Хуже того, эти коммиты могут быть потеряны со временем, если их удалить, потому что они ждут в пустоте.
Когда вы отправляете PR, вы фактически просите кого-нибудь объединить список коммитов в вашем репозитории, на который ссылается ваше имя ветки (ваш ref), со списком коммитов в удаленном репозитории, идентифицированном также ссылкой (базовая ветка). Если у вас есть коммиты, которых нет в вашем репозитории (вы не обновлены), и некоторые из ваших коммитов действительно касаются тех мест кода, которых у вас нет на вашей стороне, то для разрешения конфликтов необходимо выполнить слияние. . Если вы не обновлены, но ваш код не касается того, что было изменено с тех пор, конфликта не будет.
Наконец, когда что-то объединяется в другой репозиторий, часто оно будет сжато, чтобы сохранить историю коммитов, создав полностью новый хэш коммитов и новую древовидную структуру коммитов.
Как я уже объяснял, теги - это просто ссылки, как и ветки. Если вы открываете PR между ссылками на два репозитория, которые являются ссылками на ветки, тогда нет возможности создать тег, потому что в конце вы не создаете никаких новых ссылок, вы просто просите кого-то перенести ваши коммиты в свой код и переместить базовые ветки ссылаются на новую фиксацию после того, как все слито!
Лучшим и единственным методом действительно становится попросить сопровождающего выпустить релиз для его кода, пометив, если они это делают, но это на их усмотрение!
person
Mathieu Dumoulin
schedule
07.08.2017