tipos tag remove practices etiquetas crear best git git-merge git-pull

remove - git tags best practices



Git pull me pide que escriba un mensaje de combinaciĆ³n (5)

Creo que tienes un problema con las sucursales ... Los 2 escenarios posibles que podría imaginar que estás enfrentando:

1) Tienes una rama remota, mybranchSample , y quieres trabajar en ella, no tienes nada que hacer en este momento con la rama maestra (es decir, no quieres fusionar tu rama con la maestra o viceversa). Tu dices en tu pregunta

Cuando saco de mi rama después de ir a buscar como ...

Pero lo que haces es git pull origin master , que extrae de master . En su lugar, debería poder, con la versión git> = 1.6.6, verificar su sucursal remota usando

git fetch git checkout mybranchSample

2) Intenta trabajar en mybranchSample pero quiere tener el último código de la rama maestra allí. Entonces tiene sentido que una fusión podría ser necesaria, como dijo Anand S.

Lo saco de mi rama

git checkout mybranchSample git fetch git pull origin master

Entonces, Git me da el siguiente mensaje:

Por favor ingrese un mensaje de confirmación para explicar por qué esta fusión es necesaria,
especialmente si se combina una versión ascendente actualizada en una rama de tema

Y después de ingresar un mensaje de confirmación, se fusiona el master en mis archivos. Y aunque no he trabajado en algunos archivos de master , muestra la lista de archivos en verde cuando git status .

Este problema no está sucediendo con mis colegas, sino solo conmigo. ¿Cuál puede ser la razón detrás de esto?


La razón por la que esto solo le está sucediendo no es que su configuración sea diferente, sino que la rama en la que se está fusionando es diferente.

El motivo de los archivos en la diferencia que no cambió es que, después de la fusión, la nueva confirmación se debe a las confirmaciones principales: la confirmación que realizó por última vez y la confirmación más reciente en el maestro. La nueva confirmación contiene todos los cambios / archivos . Por lo tanto, si difiere del nuevo al último compromiso , verá todos los archivos modificados / agregados que se modificaron / agregaron en el maestro mientras su sucursal no estaba sincronizada con el maestro.


Linus Torvalds lo explica mejor:

Difundir la noticia sobre un próximo cambio de interfaz de usuario ''git'', ya que soy el mayor culpable.

Se espera que este cambio haga que la gente escriba mensajes de fusión para explicar sus fusiones, y tal vez incluso decida no fusionarse en absoluto cuando no sea necesario.

He estado usando esa función de git durante las últimas semanas ahora, y ha resultado en mi fusión de los sub-tenedores que tienen varias notas en ellos (bueno, al menos si el sub-pintor me dio alguna). Así que estoy tratando de dar ejemplo.

Pero si no te gusta explicar tus fusiones, esto podría ser molesto. Por supuesto, si no explica sus fusiones, es molesto, por lo que todo se nivela al final. "Equilibrio kármico", por así decirlo.

Fuente: https://plus.google.com/+LinusTorvalds/posts/SrePhcj6XJe


Si estabas tratando de fusionar master en mybranchSample branch, entonces esto es perfectamente normal.

Git fusiona master con mybranchSample (cuando git pull origin master de la rama mybranchSample ) y commits los cambios de fusión para usted (a menos que haya algún conflicto) y le da el mensaje mybranchSample previamente. Solo puedes guardar y salir.

PERO si solo intentaba obtener el último código de la rama master remota para fusionarse con la rama master local, entonces debería retirar y extraer del master .

de usted declaración

Fusiona archivos maestros en mis archivos. Y aunque no he trabajado en algunos archivos de master, muestra la lista de archivos en verde cuando escribo el estado de git.

Creo que estás tratando de hacer la segunda.

entonces prueba

git checkout master git pull origin master


git pull es básicamente dos acciones a la vez: git fetch seguido por una git merge (a menos que uses git pull --rebase , en cuyo caso puedes adivinar qué sucede).

La razón por la que estás viendo esto es porque Git no puede hacer una combinación de avance rápido , como puede hacerlo la mayoría del tiempo. La razón de esto suele ser porque has hecho un git commit local con la rama que intentas extraer y ahora debes combinar los cambios remotos con los locales.

También vale la pena señalar que Git rellenó previamente el mensaje de fusión para usted, por lo que realmente no necesita escribir nada. Simplemente guarde y salga, y la fusión debería estar completa. (A menos que, por supuesto, haya conflictos de fusión).