Что делает git слияние происхождения/мастера? - программирование
Подтвердить что ты не робот

Что делает git слияние происхождения/мастера?

После извлечения из удаленного с помощью git fetch нам нужно использовать что-то вроде

git merge origin/master

Я хотел бы знать, может ли эта команда также выполнять git commit в одно и то же время? Является ли порядок origin/master важным? Могу ли я написать master/original?

4b9b3361

Ответ 1

git merge origin/master может делать одну из двух (или ошибок).

В первом случае он создает новую фиксацию с двумя родителями: текущую HEAD и фиксацию, на которую указывает ref origin/master (если вы не делаете что-то смешное, это, вероятно, будет ( локальный указатель на) ветвь с именем master на удаленном сервере с именем origin, хотя это вполне условно).

Во втором случае, когда не требуется слияние древовидного уровня, а не создание нового коммита, он обновляет текущее значение ref, чтобы указать на тот же фиксатор, на который указывает origin/master. (Это называется быстрым слиянием - git может быть перенаправлено либо всегда, либо никогда не делать этого, когда вы сливаетесь с флагами командной строки).

Он не вызывает непосредственно git commit, что представляет собой более высокий уровень (фарфор в git -parlance), предназначенный для пользователей.

Вызов git merge master/original будет пытаться и разрешить master/original коммит, который почти наверняка (опять же, если вы не сделали что-то преднамеренное) не, как и origin/master. Если у вас есть удаленный с именем master, который имеет ветвь с именем original, он создаст новый коммит, который имеет это как второй родитель.

Вы можете найти git help rev-parse, чтобы помочь в расшифровке того, как git пытается разрешить имена ссылок или другие записи в commits.

Ответ 2

То, что это делает, объединяет ветвь, называемую origin/master, в вашу текущую ветку. Заказ очень важен. Слово origin означает место, из которого вы клонировали ваш репозиторий, т.е. Происхождение репозитория, мастер слова - это просто имя ветки, однако мастер обычно используется как основная ветвь или ветвь соединительной линии, как это называют некоторые другие системы.

Объединить, возможно, потребуется выполнить фиксацию в зависимости от состояния вашей разработки. Если ваша история не расходится с происхождением, она может делать так называемую "быструю перемотку вперед". Все, что нужно сделать, - это добавить новую историю поверх вашей. Если ваше развитие отклонилось от источника, тогда, если слияние может быть выполнено без конфликтов, слияние выполняется, и в HEAD записывается новая фиксация, чтобы указать слияние и два родителя.

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