¿Se necesita confirmación después de resolver el conflicto de fusión durante la reorganización de Git?

4 minutos de lectura

Avatar de usuario de BuZZ-dEE
zumbido-dEE

Reubico otra rama en mi rama de pago y obtengo un conflicto durante la reorganización. Resolví el conflicto de fusión.

$ git status
rebase in progress; onto 77c951b
You are currently rebasing branch 'test' on '77c951b'.
  (all conflicts fixed: run "git rebase --continue")

Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   br_boss_buha_faktura/forms/br_boss_buha_faktura_head_dtl.frm
        modified:   br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val
        new file:   br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client_name.val

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val

¿Necesito cometer el conflicto de fusión resuelto anterior? git commit o puedo directamente ir más lejos usando git rebase --continue?

Algunas buenas respuestas aquí, pero para responder a la pregunta. NO Tu no necesidad para confirmar después de resolver el conflicto de fusión.

Una vez que haya agregado la resolución al área de preparación de git a través de git add <file> a git rebase --continue voluntad haga la confirmación por usted utilizando el mensaje de confirmación original.

NOTA ¡el hash de confirmación cambiará! Entonces, cuando vaya a fusionar esto con otra rama que tiene confirmaciones que modificó en su rama, tendrá problemas para fusionar esas ramas.


NOTA Dije que no necesidad a git commit después de resolver un git rebase conflicto, pero tú poder si quieres.

Puede ser útil dividir archivos de una confirmación en una serie de confirmaciones individuales si tiene más sentido. Sin embargo, por lo general solo quieres resolver el conflicto. Como se muestra aquí: divide una confirmación anterior en varias confirmaciones.

  • Entonces no lo haces Necesitar. Bueno. Sería bueno si su respuesta también explicara lo que sucedería si usted hizo commit antes de continuar con el rebase.

    – init_js

    1 jun 2020 a las 16:30


Avatar de usuario de Gopi
Gopi

aquí veo

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val

Por favor, hazlo

git add br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val

Entonces

git rebase --continue

  • Después git addes git commit -a es realmente necesario?

    – ZUMBIDO-dEE

    30 de septiembre de 2014 a las 8:05


  • Sí, por favor haz git commit -a

    – Gopi

    30 de septiembre de 2014 a las 8:20

  • ¿Podría explicar por qué necesito hacer una confirmación, porque encontré un hilo aquí, que explica lo contrario?

    – ZUMBIDO-dEE

    30 de septiembre de 2014 a las 8:34

  • Cuantas confirmaciones tienes en tu topic_branch importa. Digamos que tiene un solo compromiso, luego puede resolver los conflictos y hacer git add y git commit. Si hay más de 1 compromiso, entonces debe hacer un git rebase –continue. Incluso si tiene un solo compromiso, puede hacer git rebase –continue (más seguro)

    – Gopi

    30 de septiembre de 2014 a las 8:49


  • Esto realmente no responde a mi pregunta.

    – ZUMBIDO-dEE

    30 de septiembre de 2014 a las 8:52

haciendo un git rebase --continue reescribirá el compromiso actual que está aplicando al formulario al que lo cambió. Confirmará los cambios con el mismo nombre que tenía en el test rama.

Tenga en cuenta que se está basando en un compromiso, ¡podría ser un estado HEAD separado! Por lo general, uno se basa en master o un staging rama.

  • Entonces no necesito usar git commit? Lo arreglo y luego solo uso git rebase --continue? ¿Qué quiere decir con “Por lo general, uno se basa en el maestro o en una rama de preparación”? estoy en la rama test y he hecho un git rebase featureA sobre la testrama.

    – ZUMBIDO-dEE

    30 de septiembre de 2014 a las 7:43


  • si, igual que la documentación te dice que. Además, como dijo @pala, tiene un archivo que no está preparado para confirmar. ¿Es esa la intención o debería ser parte del compromiso de rebase actual?

    – rubenvb

    30 de septiembre de 2014 a las 8:58

  • Sí, me di cuenta, que tengo que agregar el archivo git add br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.valporque git rebase --continue no funciona y me sale el mensaje You must edit all merge conflicts and then mark them as resolved using git add.

    – ZUMBIDO-dEE

    30 de septiembre de 2014 a las 9:29

Si SÍ compromete sus cambios, creo que puede hacer un git rebase --skip para omitir el conflicto de fusión ahora inexistente.

¿Ha sido útil esta solución?