Pregunta de entrevista para Ingeniero de software

¿Cuándo haces rebase y cuándo haces merge?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Haz rebase de tu propia rama de funcionalidad sobre la rama principal para mantener el historial lineal y resolver conflictos en dosis pequeñas antes de la revisión. Haz merge al integrar esa rama en una rama compartida, y nunca hagas rebase de una rama que otras personas ya se han bajado, porque reescribir historial compartido obliga a todos a una recuperación. En resumen: rebase del trabajo privado, merge del público, y squash cuando el historial de commits no le aporte nada a quien lea después.

Por qué lo preguntan los entrevistadores

El uso de Git le dice al entrevistador cómo trabajas con otra gente. Quieren la regla de historial privado frente a compartido, que entiendas que el rebase reescribe commits en vez de moverlos, y pragmatismo sobre la convención del equipo. Quien insiste en una única estrategia para todo, o no sabe explicar por qué un force push a una rama compartida hace daño, tiende a generar fricción en un equipo.

Cómo estructurar tu respuesta

  • Enuncia la regla de rama privada frente a compartida.
  • Explica qué le hace realmente el rebase a los ids de commit.
  • Di cuándo harías squash en su lugar.
  • Cede ante la convención del equipo cuando exista una.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Mi regla es rebase del historial privado, merge del historial compartido. Mientras una rama de funcionalidad es mía, le hago rebase sobre main con regularidad, porque mantiene el diff honesto y prefiero encontrarme conflictos en tres dosis pequeñas que uno enorme al final. Cuando entra en main hago merge, normalmente con squash, porque nadie que lea el log dentro de seis meses quiere mis commits de arreglo de erratas. Lo que no voy a hacer es rebase de una rama que otra persona se ha bajado, porque el rebase no mueve commits, crea otros nuevos con hashes nuevos, y la copia de los originales que tiene todo el mundo queda huérfana. Eso significa un force push y alguien perdiendo trabajo. He tenido que guiar a un compañero por el reflog para recuperarse exactamente de eso. Más allá de la regla, sigo lo que ya hace el equipo, porque un historial consistente que todos entienden gana a mi preferencia personal, y esta no es una colina en la que morir en una revisión de código.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cómo recuperarías un commit perdido tras un rebase malo?
  • ¿Qué te deja limpiar un rebase interactivo?
  • ¿Cómo gestionas una rama de larga vida que se ha desviado mucho?

Más preguntas para Ingeniero de software

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot