Projet de mise à jour de Android Studio: Fusion vs Rebase vs branche par défaut

S'excuse si cela semble redondant car je sais qu'il y a beaucoup de questions concernant Merge vs Rebase, mais il ne semble pas y en avoir qui jettent dans 'Branch Default' aussi bien.

vous êtes donné un cas où vous avez plusieurs personnes travaillant sur quelque chose (c.-à-d. une application Android dans Android Studio) concurremment. Quelle est la meilleure option pour mettre à jour project / pull si quelqu'un pousse vers la branche master et vous voulez tirer dans le nouveau master de sorte qu'il ne remplacer le travail que vous travaillez encore et encore à s'engager et à pousser à la maîtrise? Android Studio affiche les listes 'Merge' '' Rebase 'et' Branch Default 'en cliquant sur'Update Project'. D'après ce que ça donne, je voudrais faire ' Rebase '(suivi de'Merge'?), mais je ne suis pas entièrement sûr.

46
demandé sur Kurt Wagner 2014-06-24 21:48:18

3 réponses

arrimage

La clé ici est que vous avez validées travaux que vous souhaitez enregistrer. Avant d'essayer de fusionner quoi que ce soit, vous devriez stocker vos modifications pour enregistrer vos modifications non-engagées et nettoyer votre répertoire de travail.

Exécuter git stash pour ranger vos modifications. Vous devriez alors être en mesure de tirer des modifications sans aucun problème.

après que vous avez réussi tiré, vous pouvez faire un git stash apply pour appliquer de nouveau les changements que vous aviez fait avant la traction.

la Fusion et le rebasage

cacher vos modifications ne fonctionne que si vous avez des modifications non engagées . Si à un moment donné vous avez engagé mais n'avez pas poussé vous aurez besoin soit de rebase ou de fusionner.

Ce StackOverflow post a une foule d'information sur la différence.

en général, la fusion est plus facile, mais certains pensent qu'elle" pollue " l'histoire git avec merge commits.

Le rebasage

nécessite du travail supplémentaire, mais puisque vous n'avez pas de commit de fusion, il rendra la fusion essentiellement invisible.

encore une fois, dans votre cas, vous ne devriez pas avoir besoin de fusionner ou de rebaser. Il suffit de planquer, tirer, puis appliquer la planque et il devrait tout être bon.

31
répondu Tanis.7x 2017-05-23 10:31:24

enter image description here

selon L'idée IntelliJ documentation :

Mise À Jour De Type

  • Merge : choisissez cette option pour appliquer la stratégie de fusion. Le résultat est identique à celui de l'exécution git fetch ; git merge ou git pull --no-rebase .
  • Rebase : choisissez cette option pour appliquer la stratégie de rebase. Le résultat est identique à celui de l'exécution git fetch ; git rebase ou git pull --rebase .
  • Branch Default : choisissez cette option pour avoir la commande par défaut pour la branche appliquée. La commande par défaut est spécifiée dans la section branch.<name> du fichier de configuration .git/config .

nettoyer l'arbre de travail avant la mise à jour

dans cette zone, Spécifiez la méthode pour enregistrer vos modifications tout en nettoyant votre arbre de travail avant la mise à jour. Les modifications seront restaurées une fois la mise à jour terminée. Les options disponibles sont:

  • en utilisant Stash : choisissez cette option pour avoir les modifications enregistrées dans un Git cachette, de sorte que vous pouvez appliquer des patchs avec planqué changé, même à l'extérieur IntelliJ idée, parce qu'ils sont générés par Git lui-même.
  • Shelve : choisissez cette option pour avoir les modifications enregistrées sur une tablette. Le rayonnage est une idée IntelliJ l'opération interne, les pièces rapportées produites des changements de rayonnage sont normalement appliqués (non-rayés) à L'intérieur IntelliJ IDÉE. L'application des changements mis en attente en dehors de IntelliJ L'idée est aussi possible mais nécessite des étapes supplémentaires.
12
répondu Volodymyr Khodonovych 2016-08-26 13:07:03

Je n'ai pu trouver la réponse à cette question (i.e. le work-flow) dans aucun des documents de Google... voici donc mon expérience pratique en utilisant Android Studio et Git complètement à partir d'une interface utilisateur.

(je vomis à l'idée de passer de la ligne de commande à L'IDE - cela signifie que L'IDE fait défaut!)

  1. Stockez vos modifications avec: le clic droit projet -> git -> dépôt -> changement de Stash. Donnez-lui un nom.
  2. Pull mises à jour que votre collègue a fait avec: clic droit projet -> git -> dépôt - > Pull
  3. retour à votre projet de changement de code avec: clic droit - > Git - > dépôt - > changement sans Stash - > Apply Stash
  4. vous verrez alors un" fichier fusionné avec Conflicts " UI. C'est là que vous sélectionnez un fichier et que vous fusionnez sélectivement.

AVERTISSEMENT

Le manuel de fusion "Fusion Révisions" de l'INTERFACE utilisateur est TERRIBLE . Une fois que tu l'auras essayé, tu verras ce que je veux dire. Bonne chance pour essayer de faire fonctionner "synchroniser le défilement". J'espère sincèrement que cette INTERFACE est abordée dans les premières semaines de 2015.

5
répondu Someone Somewhere 2015-01-14 22:50:34