Если я делаю переадресацию сначала от моего локально зарегистрированного мастера и затем принудительно нажимаю свою ветку PR, будет ли PR также содержать изменения из слияния?
Если вы переустанавливаете свой «локально проверенный мастер» и нажимаете, PR будет обновляться только с вашей локальной версией мастера.
Вы можете проверить мастер и вытащить его с начала координат, а затем переустановить на origin/master
после git fetch
, и тогда у вас будет ветвь, содержащая только новые коммиты (новые изменения включены в историю филиалов).
Я просто хочу иметь обновленный PR, который содержит только мои изменения, как в аналогичной ситуации ранее меня попросили «как-то» очистить мой PR. Как это возможно?
У вас есть два варианта - rebase
и merge
- вы должны смотреть на документацию для каждого из них, но вот быстрое сравнение каждого:
- Rebase: будет перемотать ветвь, сброс на то, что вы наберете, а затем снова примените свои изменения. Это означает, что, когда ваш филиал не обновлен, rebasing применит новые изменения от источника до ваших изменений. Вы разрешаете конфликты слияния в начале rebase (в истории, возможно, в коммиты) и всякий раз, когда требуется, когда история повторно воспроизводится.
- Плюсы: чистая история коммитов
- Минусы: вам придется заставить толчок, многие люди не любят это делать. При переустановке хэши Commit будут меняться.
- Merge: будет применять новые изменения от происхождения сверху ваших изменений. Это означает, что ваши изменения будут существовать в истории, тогда новые изменения будут впереди. Вы разрешаете конфликты только один раз, на конец вашей истории фиксации (как правило, проще).
- Против: Это, и хеши фиксации не меняются.
- Плюсы: Не требуется принудительный толчок.
Вообще говоря, если кто-то на GitHub попросит вас обновить вашу ветку, то они, вероятно, предполагая, что вы перебазироваться, таким образом она хранится чище с точки зрения истории фиксации.
Сжатие ваших коммитов вместе является распространенным запросом у владельцев репозитория на GitHub. Это возможно только при перезагрузке, однако GitHub now offers the ability to squash commits when merging pull requests, поэтому многие владельцы репозиториев не будут беспокоиться о том, чтобы просить вас сквош, поскольку они могут сделать это сами сейчас.
Here's a good comparison каждого метода от Atlassian.
Да, он также будет содержать слияние. Вы можете попробовать сделать вишневый захват –