Typical approach is to create a branch with local changes (say "local") on top of the software:
git checkout origin/master
git checkout -b local
....edit files....
git commit
now whenever there is upstream update, you can easily reapply changes using rebase:
git fetch
git rebase origin/master
If you already have some merge history in master branch, try doing it raw and use 'git diff' to produce a complete patch of your work against upstream -- such package can be simply applied even without git tools.