My workflow is:
I keep 2 sources, visible with git remote -v
origin https://github.com/mratsim/Nim (fetch)
origin https://github.com/mratsim/Nim (push)
upstream https://github.com/nim-lang/Nim (fetch)
upstream https://github.com/nim-lang/Nim (push)
Run
To sync with devel
git checkout devel
git fetch upstream devel # get the data from Nim devel
git pull upstream devel # Fast forward upstream devel in my own devel copy
git push # Push the change in my remote copy
Run
Just create branches against your devel, and delete them once submitted and
merged, you don't need to reset and reuse the same one.