Para contribuir en un proyecto de GitHub en el que no tengas permisos de escritura (push), debes bifurcar (hacer un fork) sobre el repositorio correspondiente. Esto consiste básicamente en crear una copia completa del repositorio, totalmente bajo tu control, que se almacenará en tu cuenta de GitHub, la cual podrás clonar localmente en tu máquina y luego actualizar sin limitaciones.
De esta forma, los proyectos no necesitan añadir colaboradores con acceso push. Los usuarios pueden simplemente bifurcar un proyecto, luego clonar el fork localmente en sus máquinas, enviar sus cambios a la copia en su repositorio en GitHub y luego remitir esos cambios al propietario del repositorio original para su revisión mediante la creación de un Pull Request, tal y como se muestra en la siguiente figura:
Este flujo de fork-Pull request permite abrir una discusión para la revisión del código, donde propietario y usuarios pueden comunicarse acerca de los cambios y, en última instancia, el propietario original puede aceptarlos e integrarlos o no en el proyecto original cuando lo considere conveniente. Para más información sobre el proceso de contribución en los proyectos de GitHub puede consultar aquí.
La plataforma GitHub tiene una amplia guía de documentación de servicios, tal y como se muestran en la siguiente lista: