Нет.
Техническая причина этого заключается в том, что Git объединяется на самом деле в индексе , который временно расширяется, чтобы удержать все три входных коммита. Поскольку каждый файл успешно объединен (без конфликтов), Git сжимает эту конкретную запись индекса прямо до одной записи с нулевым интервалом, которая, следовательно, ставится для фиксации. Для конфликтующих файлов Git оставляет эту запись индекса как три занятых слота с номерами 1 (база слияния), 2 (--ours
или версия фиксации HEAD) и 3 (--theirs
).
Во время слияния работаФайлы -tree в основном представляют собой пустышки / пустые листы, за исключением того факта, что Git обновляет их, чтобы сохранить попытку слияния. Все реальные действия в индексе. Если все идет хорошо, все файлы рабочего дерева обновляются в соответствии с конечной копией с нулевым интервалом, т. Е. Похоже, что Git их поставил. Но на самом деле все пошло иначе: правильная версия вошла в индекс в нулевом слоте, а затем Git выполнил операцию в стиле git checkout-index
, чтобы скопировать файл индекса в рабочее дерево.
As EncryptedWatermelon сказал в комментарии , вы можете использовать git reset
здесь:
git reset HEAD -- <filename>
говорит Git скопировать запись фиксации HEAD
для файла в запись индекса для этого файла. Использование git reset --mixed HEAD
, которое можно записать git reset
без параметров, говорит Git сделать это для каждого файла. 1 Нет прямого / немедленного значения для использования git reset
, какэто потому, что вы можете использовать git diff --cached
для сравнения HEAD
с индексом, если вы хотите посмотреть, что происходит с обновленными индексными копиями файлов. Но вы можете сделать это, если хотите, и если вы хотите снять все с сцены, а затем поставить только несколько вещей, по любой причине, это доступно.
1 Эта --mixed
форма git reset
также указывает Git обновить текущее имя ветки, чтобы его сохраненный хеш-идентификатор был текущим сохраненным хеш-идентификатором. Если вы написали это git reset --mixed <em>hash</em>
, вы сбросили бы индекс с указанного идентификатора хеша и записали указанный идентификатор хеша в имя текущей ветви. Используя HEAD
, мы заставляем «изменить» имя ветви, чтобы «установить его на текущее значение», т. Е. Вообще не перемещать его. Это оставляет перезапись содержимого индекса как единственный видимый эффект.