почему лучше перебазировать вместо слияния, чтобы разрешить конфликты для сопровождающего? - PullRequest
0 голосов
/ 26 сентября 2019

Я читаю книгу Pro Git и запутался, перебирая, чтобы разрешить конфликты для сопровождающего.Первая картинка ниже является отправной точкой:

enter image description here

И автор говорит:

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

$ git checkout featureA
$ git rebase origin/master
$ git push -f myfork featureA

Это переписывает вашу историючтобы теперь выглядеть как История коммитов после работы FeatureA .. enter image description here

Я в замешательстве, что значит «но он больше не сливается чисто» и зачем мне нужноперебазировать эту ветку поверх origin / master, разрешить конфликты для сопровождающего?Я имею в виду, что если сопровождающему нравится мой featureA, он / она может просто объединить мою ветку с локальной веткой master (origin / master на моем конце), в чем проблема?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

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

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

tl; dr давайте постараемся свести к минимуму работу для сопровождающих проекта!?

0 голосов
/ 26 сентября 2019

он / она может просто объединить мою ветку с локальной веткой master (origin / master на моем конце)

Если ветви разошлись, легко ли объединить, зависит от того, чтоточно было изменено в обеих ветвях.

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

По сути, если есть конфликты, вы должны разрешать их при перебазировании, а не откладывать его до завершения слияния.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...