Просто запустите git merge <em>hash-of-desired-commit</em>
.
На самом деле, так работает git merge
. Git не объединяется на основе ветвей , 1 , а скорее на основе коммитов . Когда вы запускаете git merge <em>branch-name</em>
, Git превращает имя в коммит ha sh, а затем объединяет с ha sh. Единственное, что делает имя, это устанавливает коммит по умолчанию message (например, merge branch br
или merge branch br into feature
).
1 Кому точнее говоря, я имею в виду названия ветвей . См. Также Что именно мы подразумеваем под "ветвью"? Когда вы указываете коммит ha sh, результирующее слияние содержит подмножество графа фиксации и слово branch также означает некоторое подмножество графа фиксации , поэтому в этом смысле Git объединяет «ветви».
Проблема в том, что слово сама ветвь чрезмерно используется, что истощает ее смысл. Вы когда-нибудь были на вечеринке, где всех зовут Брюс? «Эй, Брюс! Брюс сказал мне, чтобы я сказал тебе, что Брюс позвонил Брюсу, чтобы сообщить, что Брюс не сможет это сделать. Пожалуйста, скажи это Брюсу, хорошо?» (Какой Брюс на самом деле не собирается это делать?)