2017-05-22 3 views
0

Je ne suis pas tellement dans GIT et je voudrais vous demander une opinion sur ce "flux de travail" (si c'est correct ou si quelque chose me manque).Comment gérer correctement cette situation en utilisant GIT? Est-il correct de mettre une version 2.0 sur une nouvelle branche?

Je travaille sur un logiciel et je l'ai mis sur mon dépôt GIT distant (sur BitBucket) en obtenant une version stable correspondant à la dernière validation sur la branche master. Puis, mon client m'a demandé un joli changement de logiciel, je l'ai implémenté en obtenant une nouvelle version stable de mon logiciel. Maintenant je sais que je peux le mettre comme un nouveau commit sur la branche master (et je sais que dans un deuxième temps je peux récupérer l'ancien code), mais je préfère garder les deux versions séparées (parce qu'elles fondamentalement sont des versions différentes de la même application).

Donc, mes doutes sont:

1) Est-ce une bonne idée de créer une nouvelle branche et de mettre cette nouvelle version sur cette branche?

2) J'ai créé une nouvelle branche sur bitbucket. Que dois-je faire pour mettre cette nouvelle version sur cette branche? Je pense quelque chose comme:

git add * 
git commit -m "Version 2.0 of my application" 
git push origin my-new-branch-name 

Est-il correct?

3) Si ce deuxième version de mon logiciel deviendra l'officiel puis-je dit à git quelque chose comme: « maintenant la nouvelle branche est la branche principale et le vieux maître est une branche latérale

+0

Ceci est un sujet très vaste et il est très difficile de vous donner une réponse concrète qui dit «fais ceci». Au lieu de cela, vous devriez regarder dans [flux git] (http://nvie.com/posts/a-successful-git-branching-model/). –

+0

Comme un commentaire à votre flux de travail, je voudrais essayer de rester loin des commits massifs qui correspondent à une toute nouvelle version, car il devient très difficile de résoudre les problèmes plus tard. À moins que votre application ne soit minuscule (et qu'un workflow ne soit pas si problématique), il est beaucoup plus courant de faire de nombreux petits commit, correspondant à des correctifs ou fonctionnalités individuels, et * tagging * les commits qui composent les versions que vous libérez . De plus, il est très courant de faire ce genre de développement sur des branches séparées, mais encore une fois, regardez dans * git flow *. –

Répondre

1

Pour votre questions:.

  1. Si le logiciel que pour un seul client, ce n'est pas nécessaire de mettre les changements dans une nouvelle branche depuis le code publié généralement géré dans une branche Si le logiciel est utilisé pour de nombreux clients, vous devez mettre les changements sur une nouvelle succursale afin de répondre à ses besoins
  2. Oui, si le nouveau La branche est créée sur bitbucket, vous pouvez passer à la branche locale (git checkout new-branch-name) et utiliser les commandes que vous avez montrées (git add, git commit et git push). L'autre façon est que vous pouvez créer une nouvelle branche localement et la pousser vers bitbucket.
  3. Noms de branche juste pour vous de séparer différentes utilisations des fonctions. Comme la branche master comme branche principale, develop branche que les développeurs travaillent pour un projet, feature branche est de développer de nouvelles fonctionnalités, hotfix branche comme correctifs, etc. Différentes équipes peuvent faire des noms de branches différentes, comme la branche principale peut généralement être nommé main , master, production etc.
+0

Seul un dernier doute: que voulez-vous dire, en créant la branche sur BitBucket (j'ai fait de cette façon), je "peux passer à la branche localement et utiliser les commandes que vous avez montré"? Ai-je besoin de faire une autre opération avant de valider et de pousser sur cette branche? Tnx – AndreaNobili

+0

Après avoir cloné le repo bitbucket, la branche courante est généralement 'master', donc vous devriez utiliser' git checkout new-branche-name', puis utiliser 'git add .',' git commit -m 'message'' et 'git push origine new-branche-name'. –

+0

mmm mais la branche identifiée par le "new-nom-branche" est vide à ce moment. De cette façon, est-ce que je télécharge un projet vide ou quoi? J'ai peur d'écraser mon projet actuel avec un projet vide sur mon espace de travail. Qu'est-ce que je rate? – AndreaNobili