[Bug] Repetitive response sections in documentation parece solo de visualizacion si cierras y abres desaparece pero es continuo y muy molesto

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Jul 31, 2026

Bug Description
repeticion de tramos de respuesta es continuo Las dos formas de juntarlo, y qué hace cada una

Opción 1 — merge: unir, sin tocar lo existente

Estando en tu rama:

git switch mia_candidata
git merge origin/suya_estable

Resultado:

M ← mia_candidata (commit nuevo, DOS padres)
/ \
C S2 ← origin/suya_estable (intacta)
| |
B S1
| |
+- A -+

Qué pasa exactamente:

  • Git crea un commit nuevo M con dos padres. Es el único caso en que un commit tiene dos padres, y es lo que hace que la bifurcación quede registrada para siempre en la historia.
  • Ningún commit existente se modifica. B, C, S1, S2 conservan sus hashes. Nada de lo que ya está publicado cambia.
  • Solo se mueve la etiqueta de la rama en la que estás. origin/suya_estable no se entera de nada. merge nunca modifica la rama que le pasas como argumento — un malentendido habitual.
  • Si hay conflictos, los resuelves una sola vez, todos juntos, y el resultado queda dentro de M.

Opción 2 — rebase: reescribir mis commits encima de los suyos

git switch mia_candidata
git rebase origin/suya_estable

Resultado:

C' ← mia_candidata
|
B' (B' y C' son commits NUEVOS)
|
S2 ← origin/suya_estable
|
S1
|
A

Qué pasa exactamente, paso a paso, porque aquí está tu duda de "funcionamiento":

  1. Git calcula la lista de tus commits que no están en la otra rama: B, C.
  2. Para cada uno calcula su parche (el diff contra su padre). Recuerda el punto 2 de arriba: el commit guarda un snapshot, el parche se deriva.
  3. Mueve el punto de trabajo a S2 (el commit final del compañero).
  4. Aplica el parche de B ahí → nace B'. Mismo mensaje, mismo autor, misma fecha de autoría… hash distinto, porque su padre ya no es A sino S2. Y su contenido tampoco es idéntico a B: es

"lo del compañero + tu cambio".

  1. Aplica el parche de C sobre B' → nace C'.
  2. Mueve la etiqueta mia_candidata a C'.

Y ahora lo importante: B y C siguen existiendo en tu repositorio, pero ya no hay ninguna etiqueta apuntándolos. Quedan localizables durante semanas vía git reflog (el diario de por dónde
ha pasado tu HEAD), y luego el recolector de basura los borra. Esto es tu red de rescate si algo sale mal, pero no es un sitio donde dejar trabajo a propósito.

Opción 1 — merge: unir, sin tocar lo existente

Estando en tu rama:

git switch mia_candidata
git merge origin/suya_estable

Resultado:

M ← mia_candidata (commit nuevo, DOS padres)
/ \
C S2 ← origin/suya_estable (intacta)
| |
B S1
| |
+- A -+

Qué pasa exactamente:

Environment Info

  • Platform: linux
  • Terminal: vscode
  • Version: 2.1.220
  • Feedback ID: d6ac51f6-9a0a-4089-a24a-702299e1cbde

Errors

[]

View original on GitHub ↗