I feel your pain CPP and I have made more than a few mistakes when wrestling with github. As mentioned, there's lot's of good info on the wiki... so not sure if this will help, but here's a method I use that's about as simple as I can make it for myself; Fork roll20's repository. Should only need to do this once. use github's desktop app to clone my fork of roll20's repo . Should only need to do this once. use the Pull app to keep your forked master in-sync with roll20's repo. Should only need to do this once. create a new branch for any sheet you want to work on. Working on separate branches will keep the Pull app from undoing any of local edits on your cloned fork and it will allow you to make separate pull requests for each sheet/branch. Always switch to the branch for the particular sheet you are working on. I use VSC to handle local editing and it detects which branch the desktop app has loaded so I don't accidentally make changes on the wrong branch or the master. Very handy. use the desktop app to submit your pull requests to roll20's master repo. Do this for each branch as needed. after pulls have been merged, I verify the Pull app(this app automatically syncs once hour I think..., but you can manually sync anytime as well. Instructions on how to that are on the Pull app page) has synced my fork and my clone. Use the desktop app to push any changes on your online fork to your local clone. if my master code looks like it's in sync with roll20 master(should have all the newly merged pulls), I'll delete any working branches that have been merged and create new ones for any new sheets I will be working on. Hope this helps.