Realmente no puedo pensar en un momento en el que usaría en git merge
lugar de git rebase
y no quiero tener una presentación de confirmación. ¿Hay alguna forma de configurar git para que tenga un reenvío rápido desactivado de forma predeterminada? El hecho de que haya una --ff
opción parece implicar que hay una manera, pero parece que no puedo encontrarla en la documentación.
263
merge
todo el tiempo para las sucursales cuando no he realizado ninguna confirmación desde su control remoto para avanzar rápidamente. Parece la forma más sencilla y segura de hacer esto. Tengo curiosidad, obviamente tienes un caso de uso. ¿Por qué querrías crear un commit de fusión donde no hay commits en un lado de la rama?Respuestas:
Sí, hay
--no-ff
. Puede configurar las opciones de fusión por rama, p. Ej.agrega lo siguiente a su
$(REPO)/.git/config
archivo:Nota al pie de página: hablando de mi experiencia, eventualmente descubrí que cambiar de avance rápido a apagado fue principalmente útil para los recién llegados a GIT; sin embargo, una vez que la sensación de los flujos de trabajo y los conceptos comiencen a hundirse, definitivamente querrás evitar difuminar tu gráfico de registro con toneladas de fusiones sin sentido. confirmaciones de tipo remoto ..blarf '.
Nota 2, una década después: las otras respuestas a continuación proporcionan opciones de configuración más modernas, pero en realidad, probablemente QUIERES mantenerte con los valores predeterminados (es decir, avanzar rápidamente siempre que sea posible) en este día y edad, porque los compromisos de fusión vacíos realmente solo hace que la historia sea mucho más difícil de razonar.
fuente
git pull
esgit fetch
+git merge
.git merge --no-ff (branchname)
? ¿Y quierogit pull
funcionar como siempre lo ha hecho?Parece que todavía hay una pregunta pendiente en el hilo: ¿Cómo hacerlo globalmente (es decir, para todas las ramas)? Para los registros, podemos usar lo siguiente:
... para que se aplique a todas las ramas en el repositorio actual. Para que se aplique a todas las ramas en todos los repositorios donde alguien no lo ha ejecutado sin la
--global
opción (la configuración local anula la global) ejecute esto:De la documentación :
fuente
merge.ff
se introdujo en Git 1.7.6. No es efectivo en versiones anteriores.puff = "pull --ff --ff-only"
Leyendo el hilo de respuestas terminé usando las siguientes dos opciones
Solo vagamente relacionado, también he encontrado que esta configuración evita problemas durante la extracción
fuente