Что связывает A (базовый), B (локальный), C (удаленный) в KDiff3 для решения конфликтов в git?
Предположим, у меня есть ветка git FIX-8834 и ветка VERSION-12.
Я хочу объединить FIX-8834 с VERSION-12 в git.
Git говорит, что есть конфликт.
Я использую Kdiff3, чтобы решить это.
Откроется KDiff3, и откроются 3 файла: A(базовый), B(локальный) и C(удаленный). Какое письмо имеет FIX_8834, VERSION-12 и откуда поступает третий файл?
Есть ли способ отобразить имена людей для файлов в KDiff3?
3 ответа
Слова должны быть читаемыми человеком:
- База - это первый коммит вниз по дереву, от которого откололись две ветви. Это первый общий предок. Часто полезно иметь это, чтобы решить, какой из новых коммитов вы хотите.
- Локальный - это ваш локальный файл, который находится в текущей ветке, на которой вы находитесь.
- Удаленный - это удаленный файл ветви, в которую вы объединяетесь.
GIT выполняет слияние тремя способами. Он находит базу слияния двух ветвей, которые вы используете. когда вы делаете git merge, он генерирует три разных типа файлов.
A (базовый), B(локальный) и C(удаленный), где
B(LOCAL) - это то же самое, что и FIX-8834 в вашем случае - это ваша ветвь, которую вы объединяете.
C(Remote) - это то же самое, что и VERSION-12 в вашем случае - это ветвь, в которую вы объединяетесь.
(База) - это не что иное, как незавершенное слияние, в котором помечаются конфликты в зависимости от используемого вами инструмента.
Пожалуйста, перейдите по этой ссылке.
Сегодня это также проблема, с которой я сталкиваюсь. Я знаком с Windows git и winmerge, вне сравнения. Теперь мне нужно работать с ubuntu git, командной строкой, kdiff3.
Предположим, что я нахожусь в своей функциональной ветке. Я хочу обновить свою ветку последней версией мастера ветки, поэтому я
git pull --rebase
. Происходит конфликт, затем инструмент git merge, а затем то, что отображает kdiff3, сбивает меня с толку. Моя фиксация становится «удаленной», новая смена мастера ветки становится «локальной».
Изменить: после двойной проверки на моем личном ПК. Трудно сказать, где проблема. Windows git может быть ошибкой или GitExtension такой умный. ПК моей компании: windows git (командная строка) + BeyondCompare ==> мой удаленный Мой личный ПК: GitExtension + winmerge ==> мой локальный ПК моей бывшей компании (если я хорошо помню): GitExtension + Beyondcompare ==> мой местный