# How to Create a Pull Request This document is a brief step-by-step guide on creating pull requests for Apollo. Your can also refer to [GitHub: Using Pull Requests](https://help.github.com/articles/using-pull-requests/) for a thorough understanding. ## Step 1: Fork your own copy of ApolloAuto/apollo to your GitHub account This is done by clicking the "Fork" button on the top-right of [Apollo's Github Page](https://github.com/ApolloAuto/apollo) and following the guide there. ## Step 2: Clone your fork of the repo Note: > Please replace "YOUR_USERNAME" with your GitHub account in the descriptions > below. Open a terminal, type either of the following commands: ``` # Using SSH git clone git@github.com:YOUR_USERNAME/apollo.git # Using HTTPS git clone https://github.com/YOUR_USERNAME/apollo.git ``` ## Step 3: Set up your username and email for this repo ``` git config user.name "My Name" git config user.email "myname@example.com" ``` ## Step 4: Set official Apollo repo as upstream Configuring an upstream remote allows you to sync changes made in the upstream with your own fork. This is done with the following command: ``` # Using SSH git remote add upstream git@github.com:ApolloAuto/apollo.git # Using HTTPS git remote add upstream https://github.com/ApolloAuto/apollo.git ``` You can confirm that the upstream repo has been added by running: ``` git remote -v ``` If successful, it will show the list of remotes similar to the following: ``` origin git@github.com:YOUR_USERNAME/apollo.git (fetch) origin git@github.com:YOUR_USERNAME/apollo.git (push) upstream git@github.com:ApolloAuto/apollo.git (fetch) upstream git@github.com:ApolloAuto/apollo.git (push) ``` ## Step 5: Create a new branch; Make and commit changes ``` git checkout -b my_dev origin/master # Make your own changes on branch "my_dev" # blah blah ... # Commit to your own branch with commit msg: git commit -m "[module] brief description of the changes" ``` ## Step 6: Sync up with upstream ApolloAuto/apollo ``` git pull --rebase upstream master ``` ## Step 7: Push your local changes to your fork. ``` git push -f -u origin my_dev ``` ## Step 8: Generate a pull request Create a new pull request between "Apolloauto/apollo:master" and "YOUR_USERNAME/apollo:my_dev" by clicking the "Pull Request" button on [your forked Apollo repo page](https://github.com/YOUR_USERNAME/apollo) on GitHub. You can then follow the steps described by [GitHub: Creating a Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork) on what to do next. Note: > Please don't forget to **add the description of your PR**. It can help > reviewers better understand the changes you have made and the intention for > those changes. Collaborators from our team will be glad to review and merge your commit! (This may take some time, please be patient.) ## Step 9: Done! Thanks a lot for your PR!