Нет, не калечит.Просто ответвьте от upstream / master, сделайте там свои коммиты, и затем вы можете вставить (или pull-request) те коммиты, которые аккуратно помещаются в upstream / master.
Если у вас есть A --- B---C, где upstream / master находится в A, а master в C, то есть B и C - это коммиты, которые вы не хотите отправлять в восходящем направлении, тогда:
git checkout -b to-send-upstream A
# work, work, work
# commits
git log A..HEAD # this will be the commits to send upstream
Если у вас есть коммиты, вы неПри отправке обратно на master, может быть проще отслеживать вещи, если вы перемещаете их в другую ветку и синхронизируете ваш master с upstream / master:
git branch my-stuff-not-sent-upstream
git reset --hard A # will wipe out local changes!
git push origin master -f # can lose history if a shared remote!
git push origin my-stuff-not-sent-upstream
эффективно заменит «master»с "my-stuff-not-sent-upstream" и установите master и origin / master обратно в тот же коммит, что и upstream / master.