Saltar al contenido

¿Cómo hacer que Git pull use rebase de forma predeterminada para todos mis repositorios?

Solución:

Ahora hay 3 niveles diferentes de configuración para el comportamiento de extracción predeterminado. Desde los más generales hasta los más finos, son:

1. pull.rebase

Estableciendo esto en true significa que git pull es siempre equivalente a git pull --rebase (a no ser que branch.<branchname>.rebase se establece explícitamente en false). Esto también se puede configurar por repositorio o globalmente.

2. branch.autosetuprebase

Estableciendo esto en always significa que cada vez que se crea una rama de seguimiento, se creará una entrada de configuración como la que se muestra a continuación. Para un control más fino, esto también se puede configurar en never, local o remote y se puede configurar por repositorio o globalmente. Ver git config --help para mas detalles.

3. branch.<branchname>.rebase

Estableciendo esto en true significa que esa rama en particular siempre se extraerá de su flujo ascendente a través del rebase, a menos que git pull --no-rebase se utiliza explícitamente.

Conclusión

Entonces, si bien no puede cambiar el comportamiento predeterminado para todos los clones futuros de un repositorio, puede cambiar el predeterminado para todos los repositorios del usuario actual (existente y futuro) a través de git config --global pull.rebase true.

Qué tal si

git config --global pull.rebase true

Esto le dirá a git que siempre tire con rebase.

La respuesta es no.

No hay forma de configurar un repositorio remoto para que todos los que lo clonen tengan el comportamiento predeterminado de git pull cambió.

Sin embargo, puede configurar un enlace del lado del servidor que compruebe que nadie empuja las confirmaciones de fusión (algo como esto, quizás).

También hay algunas opciones de configuración que pueden interesarle. Todos los desarrolladores que clonen desde el repositorio remoto tendrán que configurarlo ellos mismos manualmente.

1. Opción branch.<name>.rebase

Puede configurar una sucursal local para usar siempre --rebase, así, reemplazando <name> con un nombre de sucursal:

git config branch.<name>.rebase true

Después de ejecutar esto en master, los master sección en .git/config se veía así:

[branch "master"]
    remote = origin
    merge = refs/heads/master
    rebase = true

2. Opción branch.autosetuprebase

Ejecutar ese comando de configuración anterior para cada rama de Git puede ser una molestia, por lo que puede configurar Git para que lo configure automáticamente para cada nueva rama:

git config branch.autosetuprebase always

(También puede especificar never, remote, y local, ver man git-config para detalles.)

Sin el --global opción, la configuración se guarda en .git/config, y solo se ve afectado el repositorio actual. Con --global, la configuración se guarda en ~/.gitconfigy todos los repositorios no configurados se ven afectados.

Esta opción no afecta a las sucursales ya existentes.

3. Opción pull.rebase

git config pull.rebase true

(También puedes darle el --global opción.)

Si esta opción es verdadera, ejecutando git pull es equivalente a git pull --rebase, a no ser que branch.<name>.rebase se ha establecido en false.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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