Моя команда и я используем git около года - никто из нас не имел опыта работы с git или любым другим контролем версий. Мы выполняем большую часть нашей работы в dev, и когда мы будем готовы, мы создаем ветвь релиза, при необходимости вносим какие-либо изменения, а затем объединяем ветвь release в master. Когда мы объединяем наши ветви релиза в master, мы выполняем сквош-слияние, чтобы сохранить историю фиксации чистой. Мы прочитали много руководств/учебников/инструкций, и каждый из них говорит что-то другое, но это то, что мы решили сделать.Объединить конфликты при использовании сквош-слияния
Что я заметил - всякий раз, когда мы объединяем нашу ветвь релиза в master, мы всегда получаем конфликты слияния. Не с каждым файлом, а с примерно 15% из них или около того. Большинство из них не похоже, что они должны быть конфликтами, но они появляются как единое целое. Вот пример:
Мастер ветви до слияния:
<div style="float:right">
<strong>Select Report: </strong>
<select name="report" id="report">
<option value="">-- SELECT REPORT --</option>
<optgroup label="General">
<option value="aganalysis_stats"<?php if($report == 'aganalysis_stats') echo " selected"; ?>>AgAnalysis Stats</option>
</optgroup>
<optgroup label="LSPs">
<option value="lsps_pending_approval_for_current_quarter"<?php if($report == 'lsps_pending_approval_for_current_quarter') echo " selected"; ?>>LSPs Pending Approval for Current Quarter</option>
<option value="members_requiring_lsps"<?php if($report == 'members_requiring_lsps') echo " selected"; ?>>Members Requiring LSPs</option>
<option value="missing_lsps_for_current_quarter"<?php if($report == 'missing_lsps_for_current_quarter') echo " selected"; ?>>Missing LSPs for Current Quarter</option>
</optgroup>
<optgroup label="UCCs">
<option value="uccs_by_branch"<?php if($report == 'uccs_by_branch') echo " selected"; ?>>UCCs by Branch</option>
<option value="uccs_eligible_for_renewal"<?php if($report == 'uccs_eligible_for_renewal') echo " selected"; ?>>UCCs Eligible for Renewal</option>
<option value="uccs_expired"<?php if($report == 'uccs_expired') echo " selected"; ?>>Expired UCCs</option>
</optgroup>
</select>
</div>
Мастер ветвь после слияния:
<div style="float:right">
<strong>Select Report: </strong>
<select name="report" id="report">
<option value="">-- SELECT REPORT --</option>
<optgroup label="Appraisal Requests">
<option value="appraisal_request_stats">Appraisal Request Stats</option>
</optgroup>
<optgroup label="General">
<option value="aganalysis_stats">AgAnalysis Stats</option>
</optgroup>
<optgroup label="LSPs">
<option value="lsps_pending_approval_for_current_quarter">LSPs Pending Approval for Current Quarter</option>
<option value="members_requiring_lsps">Members Requiring LSPs</option>
<option value="missing_lsps_for_current_quarter">Missing LSPs for Current Quarter</option>
</optgroup>
<optgroup label="UCCs">
<<<<<<< HEAD
<option value="uccs_by_branch"<?php if($report == 'uccs_by_branch') echo " selected"; ?>>UCCs by Branch</option>
<option value="uccs_eligible_for_renewal"<?php if($report == 'uccs_eligible_for_renewal') echo " selected"; ?>>UCCs Eligible for Renewal</option>
<option value="uccs_expired"<?php if($report == 'uccs_expired') echo " selected"; ?>>Expired UCCs</option>
=======
<option value="uccs_by_branch">UCCs by Branch</option>
<option value="uccs_eligible_for_renewal">UCCs Eligible for Renewal</option>
<option value="uccs_expired">Expired UCCs</option>
>>>>>>> refs/remotes/origin/dev
</optgroup>
</select>
</div>
Как вы можете видеть, я сделал точно такие же изменения на обоих " LSPs "и" UCCs ". Но в группе опций «UCCs» я получаю конфликт слияния. Почему я получаю конфликт слияния? Я сливаю неправильно? Должен ли я использовать сквош-слияние при объединении ветвей в мастер? Я читал так много вещей о переустановке, компрометации, отсутствии быстрой перемотки вперед и т. Д., Я не знаю, что правильно или неправильно.
whould recomment using 'git config --global merge.conflictstyle diff3', позволит вам увидеть исходный код + оба изменения –
Я не знал, что он существует. После некоторого googling, он выглядит намного чище! – Jeff