Как объединить ветки в Git с помощью "hunk"

Вот сценарий. Я сделал ветку «dev» у ветки «master» и сделал несколько новых коммитов. Некоторые из этих изменений будут иметь отношение только к моей локальной машине разработки. Например, я изменил переменную URL, чтобы указать на локальный сервер apache вместо реального URL-адреса, опубликованного в Интернете (я сделал это для скорости на этапе тестирования). Теперь я хотел бы включить мои изменения из ветви dev в главную ветвь, но НЕ те изменения, которые имеют смысл только в моей локальной среде.

Я бы предположил что-то вроде слияния –patch, который позволил бы мне выбирать изменения, которые я хочу объединить по строкам.

В качестве альтернативы, возможно, я смогу проверить ветвь «master», но сохраните файлы в моем рабочем каталоге так же, как они были в ветке «dev», а затем добавьте git add -patch. Будет ли это работать?

Solutions Collecting From Web of "Как объединить ветки в Git с помощью "hunk""

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

Во-первых, получите изменения, не связывая их с git merge --no-ff --no-commit dev .

Удалите изменения, зависящие от развития, либо путем редактирования затронутых файлов, либо git add их, либо git reset HEAD к затронутым файлам, а затем git add --patch части, которые вы хотите.

Затем выполните слияние. Преимущество выполнения слияния заключается в том, что будущие слияния будут безболезненными. Поскольку коммиты, специфичные для разработки, считаются объединенными, будущие слияния, не связанные с конкретными частями, могут быть выполнены с помощью простого git merge dev . Таким образом, вы можете бесконечно поддерживать отдельную ветвь с собственной конфигурацией, а безболезненно слияние изменений в главную ветвь.

Может быть, вы могли бы попробовать что-то вроде этого?

 git merge --squash --no-commit $YOUR_OTHER_BRANCH git reset HEAD git add -p git commit