Подтвердить что ты не робот

Git rebase "удаленные нами" и "удаленные ими"

Предположим, что я перезагружаю ветвь Эксперимент на мастер, и в файлах есть конфликты. И, конечно, файлы удаляются в обеих ветвях. Поэтому, когда я разрешаю конфликты, в git status я вижу deleted by us и deleted by them. Это очень запутанно. Есть ли способ понять, что они означают? Кто их и кто нас?

Или во время перезагрузки есть другой способ узнать, какой файл был удален какой ветвью? Как печатать название ветки?

4b9b3361

Ответ 1

Обратите внимание, что слияние с rebase работает, переигрывая каждую фиксацию из рабочая ветвь поверх ветки <upstream>. Из-за этого, когда происходит конфликт слияния, сторона, о которой сообщается, как наша, является настолько далекой rebased series, начиная с <upstream>, а их рабочий филиал. Другими словами, стороны меняются местами.

https://git-scm.com/docs/git-rebase

Следовательно, файлы, "удаленные нами", это те, которые были удалены на ветке, на которой вы перегружаетесь (окончательная ветка), а файлы, "удаленные ими", - это файлы, которые были удалены в ветки, которую вы переустанавливаете (одна который будет удален).

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

К их чести, это имеет большой смысл, если вы думаете об этом.

Ответ 2

Я нашел ответ здесь:

Когда вы объединяетесь, us относится к ветки, в которую вы сливаетесь, в отличие от them, ветки, которую нужно объединить.

Когда вы переустанавливаете, us ссылается на ветвь вверх по течению, а them - это ветка, о которой вы двигаетесь. Это немного противоречит интуиции в случае переустановки.

Причина в том, что git использует один и тот же механизм слияния для rebase, и на самом деле он вишнево-собирает ваши вещи в ветку вверх по течению. us= в, them= from.