Controlar tu proyecto con repositorio en upstream
Como extra a la sección anterior, vamos a explicar como crear una Pull Request en tu propio repositorio dentro de un fork.
Al haber creado un fork, vamos a tener tres entornos diferenciados que tendremos que tener en cuenta:
github/your-username/Javascript-Course.git clone en vuestra máquina.Una vez clonado tu fork, y al haber hecho git clone de tu repositorio, deberías encontrar un entorno similar a este ejecutando el siguiente comando en tu proyecto:
> git remote -v
origin git@github.com/<your-username>/Javascript-Course.git (fetch)
origin git@github.com/<your-username>/Javascript-Course.git (push)
Si por error has clonado el repositorio principal (https://github.com/lucferbux/Javascript-Course.git), dirígete a la siguiente sección.
Por el contrario, si tienes el entorno creado correctamente, vamos a agregar el repositorio principal con lo siguiente:
> git remote add upstream git@github.com/lucferbux/Javascript-Course.git
> git fetch upstream
remote: Enumerating objects: 86, done.
remote: Counting objects: 100% (86/86), done.
remote: Compressing objects: 100% (55/55), done.
remote: Total 86 (delta 34), reused 79 (delta 31), pack-reused 0
Unpacking objects: 100% (86/86), 1.50 MiB | 14.11 MiB/s, done.
... (more)
Con esto habremos añadido el repositorio principal por si queremos sincronizar cambios con nuestro fork. Para añadir nuevos cambios y crear un pull request en vuestro fork solo tendréis que hacer:
> git fetch origin # sincronizar con el repositorio remoto
> git checkout -b <name_branch> origin/main # crear una nueva rama basada en la rama main del remoto
# realizar los cambios que queráis
> git add . # Añadir todos los cambios
> git commit -m "your message" # Crear commit
> git push origin <name_branch> # Enviar los cambios al repositorio remoto
Si desde un principio has clonado el repositorio principal`, hay una forma sencilla de arreglar el entorno para dejarlo en el estado que hemos comentado antes:
<> Clone.> git remote rename origin upstream # cambiar el nombre del remote a upstream
> git remote add origin https://github.com/<your-username>/Javascript-Course.git # añadir como origin la url de tu fork que acabas de copiar
> git fetch origin
> git branch --set-upstream-to origin/main # cambia el track de la rama en local a origin/main
Ahora el entorno debe estar bien configurado, ahora podemos repetir la operación anterior para crear una pull request en tu fork:
> git fetch origin # sincronizar con el repositorio remoto
> git checkout -b <name_branch> origin/main # crear una nueva rama basada en la rama main del remoto
# realizar los cambios que queráis
> git add . # Añadir todos los cambios
> git commit -m "your message" # Crear commit
> git push origin <name_branch> # Enviar los cambios al repositorio remoto