Services such as Github give you an easy way to collaborate with code. Providing shared repositories for teams to collaborate on application, track issues and carry out code reviews.
Here is a visualisation of the basic workflow for teams using Github with Heroku.
Github also provides workflow features such as pull requests, allowing developers who are not collaborators on the project to submit code changes. A developer can take a copy of an existing repository and create their own copy on Github, this is called a Fork. A developer has full access to their fork and can therefore make any changes they wish. Should the developer want to contribute back to the original project, they can create a pull request for the specific change.
A pull request sends a message to the project owners, inviting them to pull the change in the forked repository into the original project repository. A pull request shows a visual comparison of the changes made in the pull request, to the project owners can quickly review the change.
Pull requests also indicate if they can be automatically merged, or if they need to resolve a merge conflict in order to accept the change.
Here is a quick guide to pull requests