Proyecto de actualización de Android Studio: Combinar vs Rebase vs Subdirección predeterminada
Disculpas si esto parece redundante, como sé que hay una buena cantidad de preguntas con respecto a Merge vs Rebase, pero no parece haber ninguno que arrojar en 'Branch Default' también.
Se le da un caso en el que tiene varias personas trabajando en algo (es decir, una aplicación de Android en Android Studio) al mismo tiempo. ¿Cuál es la mejor opción para actualizar el proyecto / pull si alguien empuja a la sucursal maestra y desea insertar el nuevo maestro de tal forma que no sobrescriba el trabajo en el que todavía está trabajando y que aún tiene que cometer y empujar al maestro? Android Studio muestra 'Merge' 'Rebase' y 'Branch Default' al hacer clic en 'Update Project'. De lo que suena, me gustaría hacer 'Rebase' (seguido de 'Merge'?), Pero no estoy completamente seguro.
- ¿Cómo puedo especificar la última versión de commit en Gradle
- ¿Cómo agregar el repositorio privado de Git de bitbucket a AOSP?
- SDK Ubicación no encontrada
- Clonación de GitHub en Android usando Terminal IDE
- Alternativa a git-repo (auxp repo)
- ¿Cómo cambiar la versión de Android en el repo local?
- Android studio gitignore no ignorará .iml
- ¿Cómo usar Git en Android?
- ¡Está faltando android.compileSdkVersion! Error gradle build
- IntelliJ IDEA piensa que parte de mi proyecto es la subversión en lugar de git, ¿cómo arreglar esto?
- Android gradle de estudio, error: Causa: error = 2, Ningún archivo o directorio
- ¿Cómo puedo compartir código a través de git con otros que tengan el repositorio de Android?
- Uso de la biblioteca de HoloEverywhere
Stashing
La clave aquí es que usted tiene el trabajo que no desea confirmar que desea guardar. Antes de intentar combinar algo, debe guardar los cambios para guardar los cambios no confirmados y limpiar su directorio de trabajo.
Ejecute git stash
para almacenar sus cambios. A continuación, debe ser capaz de tirar de los cambios sin ningún problema.
Después de haber tirado con éxito, puede hacer un git stash apply
para volver a aplicar los cambios que había hecho antes de la atracción.
Fusión y renovación
Stashing sus cambios sólo funciona si sólo tiene cambios no confirmados . Si en algún momento te comprometiste pero no te empujas necesitas rebajar o fusionar.
Esta publicación StackOverflow tiene una gran información sobre las diferencias.
En general, la fusión es más fácil, pero algunos creen que "contamina" la historia git con la fusión se compromete.
Rebasing requiere trabajo adicional, pero como no tiene un commit de combinación, esencialmente hará que la fusión sea invisible.
Una vez más, en su caso no debería necesitar fusionarse o rebase. Basta con guardar, tirar, luego aplicar el escondite y todo debe ser bueno.
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 usando Android Studio y Git completamente desde una interfaz de usuario.
(Vomito con la idea de cambiar entre la línea de comandos y el IDE – significa que el IDE está faltando!)
- Stash sus cambios con: Haga clic derecho Proyecto -> Git -> Repositorio -> Stash cambios. Dale un nombre.
- Tire de las actualizaciones que su colega hizo con: Proyecto de clic derecho -> Git -> Repositorio -> Pull
- Combine sus cambios de código con: Haga clic derecho Proyecto -> Git -> Repositorio -> UnStash Cambios -> Aplicar Stash
- A continuación, verá una interfaz de usuario "Archivos fusionados con conflictos". Aquí es donde se selecciona un archivo y se fusiona selectivamente.
ADVERTENCIA
La interfaz de mezcla de combinaciones manuales "Merge Revisions" es TERRIBLE . Una vez que lo intente, verá lo que quiero decir. Buena suerte tratando de conseguir "Synchronize Scrolling" para que realmente funcione. Espero sinceramente que esta IU se dirija dentro de las primeras semanas de 2015.
De acuerdo con la documentación IntelliJ IDEA:
Tipo de actualización
- Combinar : elija esta opción para aplicar la estrategia de combinación. El resultado es idéntico al de ejecutar
git fetch ; git merge
git fetch ; git merge
ogit 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
ogit pull --rebase
. - Rama predeterminada : seleccione esta opción para que el comando predeterminado para la rama se aplique. El comando predeterminado se especifica en la
branch.<name>
labranch.<name>
archivo de configuración.git/config
.
Limpiar el árbol de trabajo antes de actualizar
En esta área, especifique el método para guardar los cambios mientras limpia el árbol de trabajo antes de actualizar. Los cambios se restaurarán una vez finalizada la actualización. Las opciones disponibles son:
- Uso de Stash : elija esta opción para que los cambios se guarden en un stash de Git, por lo que puede aplicar parches que se han cambiado incluso fuera de IntelliJ IDEA, porque son generados por el propio Git. Utilizando
- Estante : elija esta opción para tener los cambios guardados en una estantería. La estantería es una operación interna de IntelliJ IDEA, los parches generados a partir de los cambios estancados se aplican normalmente (no recuperados) dentro de IntelliJ IDEA. La aplicación de cambios pendientes fuera de IntelliJ IDEA también es posible pero requiere pasos adicionales.