Help me with a few questions about contributing on Git?

After spending all morning on this, I was able to make changes to the curriculum the proper way successfully, but I still have some questions.

  1. I tried to “rubber duck” the process, and this is what I got. Is that about right?

Upstream is the original repo
Origin is the repo you cloned on Github site
Master is what you pull down from Origin to your local machine
Then you have to create a Branch off of Master
Make the changes in Branch (add, commit)
Leave Branch, go to Master
Fetch changes from Upstream and merge them into Master, so that it’s up-to-date
Leave Master, go to Branch
Merge Master (with changes) into Branch
Leave Branch, go to Master
Merge Branch into Master
Push Master to Origin
Go to GitHub and use interface.

  1. Is it necessary to git branch --all? This is the part that consistently screws me up, detailed here in “Ongoing Workflow #4”: https://www.theodinproject.com/courses/ruby-programming/lessons/using-git-in-the-real-world#a-git-workflow-for-open-source-contribution

Type $ git branch --all to see a list of all the branches, including the ones that are normally hidden (e.g. the remote branches you just grabbed). You should see upstream/master among them.

When I did this in Terminal on my Mac, I got 4 pages of branches and I was stuck until I figured out it was using vim, and then I quit out of it.

Why is the listing of branches necessary? Where are each of these 4 pages of branches located – on the GitHub server, on my local machine, or on others’ local machines? Should I have deleted the branch I created to accomplish what I did in question 1 as well?

Thank you!