in

git – ¿Qué hace ‘–set-upstream’?

apple touch icon@2

Asumo que tu pregunta es:

Que hace git push --set-upstream <repository> <branchname> ¿hacer?

Como puede ver, asumí que el comando git en cuestión es git push. Espero que eso sea lo que quisiste decir. Para simplificar la respuesta, especifiqué además que la rama local en la que se encuentra tiene el mismo nombre que la rama remota en su repositorio ascendente al que está presionando. Finalmente, asumo una configuración de git común.

Dicho esto, esta es mi respuesta:

Además de la operación que un git push sin la opción --set-upstream lo hace, esta opción marcas git push colocar al menos dos variables de configuración:

  • branch. .remote =
  • branch. .merge = / ref / heads /

Eso es todo lo que hace este comando. Almacena información ascendente (es decir, repositorio remoto y sucursal) para la sucursal local en variables de configuración.

La información ascendente se almacena con el nombre de la sucursal local. Si su sucursal local se llama main, las respectivas variables de configuración son branch.main.remote y branch.main.merge. Según la forma en que se almacena esta información ascendente, una sucursal local no puede tener más de un conjunto único de información ascendente.

Puede consultar si alguna de estas variables de configuración está configurada usando git config --get-regexp ^branch.. Esto generará cualquier variable que comience con «rama».

La magia sucede cuando estas variables de configuración son utilizadas por, por ejemplo, git fetch, git pull o git push para averiguar el repositorio ascendente y la rama remota para una rama local si no los especifica explícitamente en la línea de comandos. Es decir, cuando se establecen estas variables de configuración, puede simplemente emitir git push y git sabrá (usando estas variables) el repositorio remoto y la rama ascendente a usar.

Lectura adicional sugerida:

Pero ten cuidado con las peculiaridades de Git:

Si se proporciona como URL o ruta de archivo, consulte, por ejemplo este ejemplo:

git push --set-upstream git@gitlab.example.com:namespace/myproject.git master

git push no crea una referencia a la rama remota en .git/refs/remotes/<repository>

Solo si se le ha dado un nombre al repositorio ascendente mediante

git remote add <repository> <URL>

y git push --set-upstream se ha utilizado con este nombre, todo el poder de las ramas de seguimiento remoto está disponible en todos los comandos de git.

Lectura adicional sugerida:

FYI: todos los comandos probados con git V2.32 en Windows.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Shell de Unix / Linux – El bucle while

gfg 200x200 min

Ejemplos de programación de Python – GeeksforGeeks