---
title: "Workflow #2: \"local editing and rendering with Docker\""
manual: "How to Document"
version: "main"
permalink: "https://docs.typo3.org/permalink/h2document:docs-contribute-git-docker"
source: "Howto/EditLocal.rst"
rendered: "2026-09-19T10:25:29+00:00"
---

# Workflow #2: "local editing and rendering with Docker" {#docs-contribute-git-docker}

Using your local machine instead of editing documentation on GitHub has many advantages, it includes
the freedom to choose which IDE you make your changes in and it also gives you
the ability to experiment and preview your changes locally before submitting them for approval.

1.  Create a GitHub account:

    Visit [Join GitHub](https://github.com/join) and create your account.

    Though not mandatory, the general convention in the TYPO3 community is
    to set your GitHub name (*not* username) as your full name.
1.  Find and fork the repository

    In the footer of the documentation you wish to make changes to,
    select the **Repository** link.

    This will take you to the documentations repository in GitHub.

    From here, select the "Fork" button in the upper right corner of the page.

    ![](../_Images/github-fork.png)
1.  Clone the forked repository

    Clone the **forked repository from your workspace** (select *Clone or
    download* to copy the URL).

    In your terminal:

    ```bash
    git clone https://github.com/<USERNAME>/<NAME OF REPOSITORY>.git
    ```
1.  Setup Git Settings and SSH Key

    For this, we refer to the general help on Git and GitHub:

    Setup [username](https://help.github.com/en/articles/setting-your-username-in-git)
    and [email](https://help.github.com/en/articles/setting-your-commit-email-address-in-git)
    (if not already setup in your global `~/.gitconfig`).

    [Setup your .ssh key for GitHub](https://help.github.com/en/enterprise/2.15/user/articles/adding-a-new-ssh-key-to-your-github-account)
1.  Create a branch for your changes

    > [!IMPORTANT]
    > If you did not just fork and clone but are instead using an old local version of this repository:
    >
    > 1.  Make sure the repository is up-to-date by pulling from upstream as described
    >     in [Keeping your local fork up-to date](https://docs.typo3.org/permalink/h2document:contribute-edit-locally-more-changes).
    > 1.  Always branch from `main`.
    >     If you are checked in to a feature branch, switch back to `main`
    >     first:
    >
    >     ```bash
    >     git checkout main
    >     ```

    For example, create the branch `feature/changes-in-cgl`:

    ```bash
    git checkout -b feature/changes-in-cgl
    ```
1.  Make your changes

    Using your preferred IDE or editor you can now start making your changes.

    If you are not familiar with reST, you can visit the
    [reST Introduction](https://docs.typo3.org/permalink/h2document:writing-rest-introduction) to help get you started
    along with the [reST cheat sheet: using reStructuredText in TYPO3 documentation](https://docs.typo3.org/permalink/h2document:rest-cheat-sheet).
1.  Render the documentation

    Render your changes with Docker to preview them locally:

    -   [Rendering the Documentation folder locally with Docker](https://docs.typo3.org/permalink/h2document:render-documentation-with-docker)
1.  Commit

    ```bash
    git commit -a
    ```

    See [commit message conventions](https://docs.typo3.org/permalink/h2document:commit-messages) for how to
    phrase the summary line and body, which trailers to add, and how to
    reference related changes, for example:

    **Example commit message**

    ```text
    [TASK] Add missing alt text for screenshots

    Screen reader users could not tell what the two new screenshots showed.
    Add descriptive alt text to both.

    Assisted-by: Claude Sonnet 5 <noreply@anthropic.com>
    Signed-off-by: Jane Doe

    ```
1.  Push changes

    ```bash
    git push origin changes-in-cgl
    ```

    This will push the change to your forked repository.
1.  Create Pull request

    Now, in your browser, visit the forked repository in your [GitHub](https://github.com/) workspace. GitHub will already make
    some suggestions for a pull request and will display your pushed
    branch as "Your recently pushed branches".

    Click on the green button "Compare & pull request" and then
    "Create pull request".

    Your change will now be reviewed. A reviewer might
    suggest additional changes. Monitor your notifications (email) from GitHub. If at any
    point, you are not sure what to do, don't hesitate to
    [ask for help](https://docs.typo3.org/permalink/h2document:how-to-get-help). When your pull request is accepted,
    it will be merged. You will receive a notification email as soon as this happens.

    More information on how your submissions ("PR"s, "Pull Requests") will receive
    feedback can be found in the chapter [Policy for making and reviewing contributions](https://docs.typo3.org/permalink/h2document:review-policy).

**Congratulations! You are now a contributor. Welcome and thank you!**

## Next steps {#docs-contribute-git-docker-next-steps}

-   Look at [How you can help](https://docs.typo3.org/permalink/h2document:docs-official-how-you-can-help) for more ways to contribute.

## Keeping your local fork up-to date {#contribute-edit-locally-more-changes}

### Explanation {#contribute-edit-locally-more-changes-explanation}

This section describes how to keep your local repository up-to-date. This is
similar to the GitHub documentation in chapter [Keep your fork synced](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#keep-your-fork-synced).

If you have already created a patch for a repository, you can reuse your
local repository. This means you do not have to fork and clone for every new patch.

However, if you reuse your local clone, you should make sure it is up-to-date
before you create another branch for a new patch.

You local repository is based on the forked repository in your workspace.

For example,

-   URL of fork:  `git@github.com:<your username>/TYPO3CMS-Guide-HowToDocument.git`
-   original URL: `git@github.com:TYPO3-Documentation/TYPO3CMS-Guide-HowToDocument.git`

So, running the following will not get the latest changes:

```bash
git pull origin main
```

because origin points to your fork.

### Do it now {#contribute-edit-locally-more-changes-now}

You must now do the following:

```bash
git remote add upstream git@github.com:TYPO3-Documentation/TYPO3CMS-Guide-HowToDocument.git
git pull upstream main
```

Replace the URI with the correct URI for the original repository, not your fork!

The URL for upstream has now been written to `.git/config` in your local repository,
so next time it is enough to do:

```bash
git pull upstream main
```

Now, continue with step 5 (create branch) in the first section of this page.

## More information {#docs-contribute-git-docker-information}

For more information in this guide:

-   [reST cheat sheet: using reStructuredText in TYPO3 documentation](https://docs.typo3.org/permalink/h2document:formatting-with-rest)
-   [Rendering Documentation With Docker](https://github.com/t3docs/docker-render-documentation/blob/master/README.rst)
-   [Policy for making and reviewing contributions](https://docs.typo3.org/permalink/h2document:review-policy)

For more information about GitHub see the help pages on GitHub or other
resources, for example:

-   [Creating a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/)
-   [How to Create a Pull Request on GitHub](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github)
-   [Fork a repo](https://help.github.com/en/articles/fork-a-repo)
