2011-03-14 10 views

Respuesta

27

Sí se puede git pull --rebase.

También puede establecer que sea el comportamiento de extracción predeterminado cuando rastrea una rama con git config branch.autosetuprebase always. Reemplace "siempre" con "remoto" o "local" si desea hacerlo a los tipos específicos de ramas que está rastreando.

Ahora todo lo que tiene que hacer es git pull.

Si por alguna razón desea hacer una fusión, puede hacer git pull --no-rebase.

Espero que esto ayude.

ACTUALIZACIÓN: consulte los comentarios a continuación para saber cómo hacer esto en las sucursales existentes.

+7

'branch.autosetuprebase' solo cambia el" modo "de extracción predeterminado para las ramas * new * que tienen un upstream para rastrear. 'rama. .rebase' es la variable que controla la operación de una rama individual (se establece en verdadero para las nuevas ramas de "seguimiento" si 'branch.autosetuprebase' es verdadero cuando se crea la bifurcación). Use 'git config branch. .rebase true' para configurarlo manualmente para una sola rama. –

+0

correcto. Olvidé mencionar las ramas de seguimiento existentes. También puede editar la configuración a mano si sabe lo que está haciendo. –

+1

Para hacerlo, edite el archivo de configuración, busque la sección para la rama y agregue: rebase = true – Patrick

4

que suelo utilizar una zona de alcance/rebase combinación por lo que mi trabajo actual (local) se mantiene en la parte superior:

git fetch 
git rebase origin/develop 
11

En lugar de autosetuprebase, puede utilizar la opción pull.rebase config para cambiar el comportamiento de cada git pull (en lugar de sólo ramas de nueva creación):

[pull] 
    rebase = true 

La diferencia es esto se aplicará a la no rastrear sucursales y cualquier rama que haya configurado antes de habilitar autosetuprebase. Entonces, si realmente quiere que pull --rebase sea siempre el predeterminado, pull.rebase es el camino a seguir.

+0

No funciona bien con TortoiseGit. – Bohdan

+0

@Bohdan cierto ... Dejé de usar TortoiseGit para usarlo todos los días hace mucho tiempo, si quieres hacer algo complicado con Git terminas teniendo que ir a la línea de comando de todos modos. –

+0

¡Gracias, es una gran idea! –

0

Para cambiar el comportamiento predeterminado de merge a rebase En git> = 1.7.9:

git config --global pull.rebase true

eliminar global si desea aplicar para repo actual sólo

Cuestiones relacionadas