GitHub provides different workflows depending on whether you own the repository or are contributing to someone else’s project. Understanding these workflows is essential for collaborating effectively on GitHub.

GitHub flow

GitHub flow is a lightweight, branch-based workflow. The GitHub flow is useful for everyone, not just developers. The GitHub documentation has a good overview of the process and the reasons for using it. See GitHub flow.

The basic GitHub flow consists of:

  1. Create a branch from main
  2. Make changes and commit them
  3. Push the branch to GitHub
  4. Create a pull request
  5. Review and discuss changes
  6. Merge the pull request
  7. Delete the branch

Workflow for a single repository

When you own a repository or have write access to it, you can use a simpler workflow. The following image illustrates the workflow for using Git and GitHub to add or change content using a working branch for a single repository. The step shown in red is a one-time action for each machine you work on. The numbered steps (in black) are described in the table below.

Single clone GitHub workflow

StepsDescription of stepsGit command / GitHub actions
AClone the repo (once per machine)git clone https://github.com/<your-account>/sdwGitFun
0Checkout the main branchgit checkout main
1Sync the main branchgit pull origin main
2Create a new working branchgit checkout -b v1release
3Create new contentUse VS Code to create or edit files
4Add changes for Git trackinggit add -A
5Commit changes to local repogit commit -m 'commit message'
6Push working branch to origingit push origin v1release
7Submit pull requestGo to https://github.com/<your-account>/sdwGitFun/pulls and click the New pull request button. Base repository: your-account/sdwGitFun base: main <– head repository: your-account/sdwGitFun compare: v1release Fill out the pull request description and click Submit.
8PR is reviewedMake the necessary changes based on the review feedback.
9PR is mergedGo to step 10
10Cleanup unneeded branch infogit checkout main; git push origin --delete v1release; git branch -D v1releaseThe git push command deletes the branch in your fork and deletes the tracking branch from your local repo. The git branch command delete the branch from your local repo.
11Start new changeGo to step 0

Next ⏭