Proyecto de actualización de Android Studio: Merge vs Rebase vs Branch Default

Disculpas si esto parece networkingundante, ya que sé que hay una buena cantidad de preguntas con respecto a Merge vs Rebase, pero no parece haber ninguna que arroje 'Branch Default' también.

Se te presenta un caso en el que tienes varias personas trabajando en algo (es decir, una aplicación de Android en Android Studio) al mismo time. ¿Cuál es la mejor opción para actualizar el proyecto / extracción si alguien presiona a la twig principal y desea extraer el nuevo maestro para que no sobrescriba el trabajo en el que todavía está trabajando y aún tiene que comprometerse y presionar para dominar? Android Studio enumera 'Merge' 'Rebase' y 'Branch Default' cuando se hace clic en 'Actualizar proyecto'. Por lo que parece, me gustaría hacer 'Rebase' (seguido de 'Merge'?), Pero no estoy del todo seguro.

Stashing

La key aquí es que tiene un trabajo no comprometido que desea save. Antes de intentar fusionar cualquier cosa, debe esconder los cambios para save los cambios no confirmados y limpiar su directory de trabajo.

Ejecuta git stash para esconder tus cambios. Debería poder tirar de los cambios sin problemas.

Después de que hayas sacado con éxito, puedes hacer un " git stash apply para volver a aplicar los cambios que hiciste antes de tirar.

Fusionando y rebase

El almacenamiento de sus cambios solo funciona si solo tiene cambios no confirmados . Si en algún momento te comprometiste pero no presionaste necesitarás volver a establecer la base o fusionar.

Esta publicación de StackOverflow tiene buena información sobre las diferencias.

En general, la fusión es más fácil, pero algunos creen que "contamina" el historial de git con confusiones de fusión.

Rebasar requiere trabajo adicional, pero como no tiene una fusión, esencialmente hará que la combinación sea invisible.

Nuevamente, en su caso, no debería necesitar fusionar o volver a establecer la base. Simplemente esconde, tira, luego aplica el alijo y todo debería ser bueno.

enter image description here

De acuerdo con IntelliJ IDEA documnetatition :

Tipo de actualización

  • Fusionar : elija esta opción para aplicar la estrategia de fusión. El resultado es idéntico al de ejecutar git fetch ; git merge git fetch ; git merge o git pull --no-rebase .
  • Rebase : elija esta opción para aplicar la estrategia de rebase. El resultado es idéntico al de ejecutar git fetch ; git rebase git fetch ; git rebase o git pull --rebase .
  • Branch Default : elija esta opción para tener el command pnetworkingeterminado para la twig aplicada. El command pnetworkingeterminado se especifica en la branch.<name> del file de configuration .git/config .

Árbol de trabajo limpio antes de la actualización

En esta área, especifique el método para save sus cambios mientras limpia su tree de trabajo antes de la actualización. Los cambios se restaurarán después de que se complete la actualización. Las opciones disponibles son:

  • Uso de Stash : elija esta opción para save los cambios guardados en un alijo de Git, para que pueda aplicar parches con cambios ocultos incluso fuera de IntelliJ IDEA, ya que son generados por Git. Utilizando
  • Dejar de lado : elija esta opción para save los cambios en un estante. Estanterías es una operación interna de IntelliJ IDEA, los parches generados a partir de cambios archivados se aplican normalmente (sin estanterías) dentro de IntelliJ IDEA. La aplicación de cambios archivados fuera de IntelliJ IDEA también es posible, pero requiere pasos adicionales.

No pude encontrar la respuesta a esta pregunta (es decir, el flujo de trabajo) en ninguno de los documentos de Google … así que aquí está mi experiencia práctica al usar Android Studio y Git completamente desde una IU.

(Vomito ante la idea de cambiar de línea de command a IDE, ¡significa que falta el IDE!)

  1. Detecte sus cambios con: haga clic con el button secundario en Proyecto -> Git -> Repositorio -> Cambios de Stash. Dale un nombre.
  2. Extraiga las actualizaciones que su colega hizo con: Haga clic derecho en Proyecto -> Git -> Repositorio -> Tire
  3. Combina los cambios de tu código con: Haz clic derecho en Proyecto -> Git -> Repositorio -> Cambios de UnStash -> Aplicar Stash
  4. Luego verá una IU "Archivos fusionados con conflictos". Aquí es donde selecciona un file y se fusiona selectivamente.

ADVERTENCIA

La interfaz de usuario de fusión manual "Merge Revisions" es TERRIBLE . Una vez que lo intentes, verás lo que quiero decir. Buena suerte al intentar que "Sincronizar desplazamiento" funcione realmente. Sinceramente espero que esta UI se aborde en las primeras semanas de 2015.