I wonder why there are so many merges in the commit history:
If there is no local change in the mean-time, successively pulling upstream should only fast-forward instead of creating a new merge-commit. Is there an option in Smartgit that one can select for "fast-forward if possible"? If yes, this should be activated.
Otherwise, the other tactics would be, instead of merging all changes into the personal "master", and then branching off master, to branch off directly from "upstream", so that in the history the arrow would start directly from the head of the upstream branch, and not from several merges far in the past.
(Alternatives are to use "rebase" and "cherry-pick", but it seems both have disadvantages: Rebase should only be used before pushing anything to a public server, and cherry-pick duplicates a commit in history so git's pull-request does not automatically recognize cherry-picked commits.)