Что я делаю, так это создаю новую, чистую ветку, основанную на восходящем потоке, а затем черри выбираю изменения, которые я хочу отправить в эту ветку (или в первую очередь разрабатываю их в этой ветке, или использую другой метод для копирования их в ту ветку).
Может показаться немного глупым иметь список открытых веток с именами «clean1», «clean2» или что-то в этом роде, но, надеюсь, вам не нужно будет создавать слишком много из них.
В качестве альтернативы, вы можете просто отправлять патчи вместо запросов на извлечение.