> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cubic.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a pull request

> Use mg to create a single PR, just like in Git/GitHub.

If you're only opening **one** pull request—no complex stacking—**you can keep using normal Git commands** exactly as before (e.g., `git checkout -b my-feature`, `git commit -m "message"`, `git push`). Using **mg** is entirely optional for a single PR workflow—but it can still help you **save time** with commands like `mg branch` and `mg push`.

<Note>
  **Prerequisites**

  * [Install mg](/installation) (optional for single PRs, but useful if you want to try mg's features)
  * [Initialize your repo](/how-to-guides/initialize-in-repo) if you plan on using mg for pushing to cubic/GitHub
</Note>

***

## 1. Make your changes (Option A: Use mg)

<Steps>
  <Step title="Create a new branch and commit in one command">
    ```bash theme={null}
    # Create a new branch + commit all changes in one command: 
    echo "console.log('Single PR')" > single.js 
    mg add single.js 
    mg commit -b -am "feat: add single PR example" 
    ```

    This automatically creates a new branch and commits changes under that branch.
  </Step>
</Steps>

### Or (Option B: Keep using Git)

<Steps>
  <Step title="Create a branch">
    ```bash theme={null}
    git checkout -b single-pr-example 
    ```
  </Step>

  <Step title="Make changes">`bash echo "console.log('Single PR')" > single.js `</Step>

  <Step title="Commit your changes">
    ```bash theme={null}
    git add single.js 
    git commit -m "feat: add single PR example" 
    ```
  </Step>
</Steps>

Both approaches are valid. In either case, your new branch is ready for a pull request.

***

## 2. Push to open a PR

<Accordion title="Using mg">
  ```bash theme={null}
  mg push 
  ```

  mg might open your editor (vim, nano, etc.) so you can edit the PR title/description. It then prints a link to the PR on cubic.dev.
</Accordion>

<Accordion title="Using Git">
  ```bash theme={null}
  git push -u origin single-pr-example 
  ```

  Then open [cubic.dev](https://cubic.dev) in your browser to create the PR manually.
</Accordion>

Either way, you end up with a single PR on GitHub or cubic.

***

## 3. Respond to reviews

If your teammates review the PR and request changes:

<Steps>
  <Step title="Check out your feature branch">
    Using mg:

    ```bash theme={null}
    mg checkout single-pr-example
    ```

    or using Git:

    ```bash theme={null}
    git checkout single-pr-example
    ```
  </Step>

  <Step title="Make and commit changes">
    Using Git:

    ```bash theme={null}
    git commit -am "Fix: addressed feedback"
    ```

    or using mg:

    ```bash theme={null}
    mg add .
    mg commit -m "Fix: addressed feedback"
    ```
  </Step>

  <Step title="Push changes">
    Using mg:

    ```bash theme={null}
    mg push
    ```

    or using Git:

    ```bash theme={null}
    git push
    ```

    The existing PR automatically updates.
  </Step>
</Steps>

***

## 4. Merge

You can merge your single-PR branch through **GitHub**'s UI or the [cubic UI](/how-to-guides/merge-your-stack) (cubic can show just one PR, even if it's not a stack). Either way, once it's approved and merged, you're done!

***

## That's it!

For a single pull request, your workflow doesn't really change—you can continue using Git exactly as before. **mg** is there if you'd like to streamline creating branches and pushing PRs, but it's optional for one-branch flows.

<Tip>
  **Want to see mg's real power?** Check out [Create a Stack](/how-to-guides/create-a-stack) to
  learn about stacking multiple branches for cleaner, smaller PRs.
</Tip>
