> For the complete documentation index, see [llms.txt](https://wiki.berkie.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.berkie.ee/techops/getting-started-projects/getting-started-with-techops-projects/git-workflow.md).

# Git Workflow

Here's the general Git workflow that you will run into:

1. Pull from origin main/master: `git pull origin main`
2. Create your own development branch: `git checkout -b <your branch name>`
3. Make your edits
4. Commit and push your changes to your branch:

```
git add <file changed> <file changed>
git commit -m "commit message"
git push --set-upstream origin <your branch name>
```

5. Open a pull request (PR) in the GitHub interface to merge into main:

Remember to **never commit and push directly to main**. The purpose of git is to create a way for many people to work on the same code at the same time without major conflicts.

We also would like to see a clean git history. This means:

* Rebase often: try to pull the latest changes from main as needed
* Make PRs for features and try not to run into conflicts
* Make commits linear if possible: ![](/files/7KPfzNClKmO9DOVLFdZP)

As a first assignment, please complete [Git Practice Assignment](/techops/getting-started-projects/getting-started-with-techops-projects/git-practice-assignment.md)
