2017-08-01 5 views
3

Je travaille sur la branche develop sur mon ordinateur. J'ai fait beaucoup de changements que je ne veux pas pousser, mais je veux les garder. Ce que j'ai fait est de changer le comportement du traducteur sur mon projet et je voudrais le tester un peu plus longtemps avant de le pousser et de le déployer en production. Mais je voudrais continuer à travailler sur développer ou d'autres branches et être en mesure d'appliquer ces changements.Git garde certaines modifications locales propres mais ne les pousse pas

Il y a les idées que je suis venu avec:

  1. Gardez tous ces fichiers (ne les git-add) et valider les fichiers que je veux vraiment engager. Mais cette solution rend mon "git status" très désordonné (beaucoup de fichiers modifiés) et je crois qu'il va générer des erreurs et conduire à la validation de mauvais fichier (s).

  2. Git stash sauvegarde "Traduction" et l'applique quand je veux l'utiliser. Mais je vais avoir le même problème avec un statut git désordonné où je vais devoir choisir lequel de mes fichiers je veux commettre ou non.

  3. Créer une nouvelle branche avec ma nouvelle fonctionnalité sur, mais dès que je vais fusionner ma branche de travail que je remettrai la fusion en même temps

Connaissez-vous un autre flux de travail garder une liste de changements à beaucoup de fichiers et appliquer/supprimer ces changements?

Répondre

0

Quelque chose comme git-flow ou gitlab-flow convient très bien. D'après ce que j'ai lu, je peux conclure que votre projet se compose de 2 modules, et que vous les modifiez tous les 2.

Un module est stable, mais vous l'avez modifié de toute façon et vous voulez tester vos modifications plus en profondeur, et un autre est en cours de développement.

J'utiliserais votre 3ème variante, mais fusionneriez votre branche de travail dans votre nouvelle branche d'entité. Ou, si vous souhaitez séparer vos modifications d'un module "stable", vous pouvez les conserver dans une branche distincte.

C'est, vous obtenez 3 branches:

  • votre travail sur le module "instable", module "stable" sans vos dernières modifications ;
  • vos modifications du module "stable";
  • fusion de deux ci-dessus

Branching à git est pas cher et facile, vous pouvez créer une quantité de branches.

0

Vous pouvez faire rebaser votre branche locale principale sur une branche intermédiaire qui est celle qui suit la branche distante. Vous signalez ensuite votre commit de votre branche locale principale au suivi par l'intermédiaire de cherry-pick, puis vous rebassez votre local principal sur la branche de suivi mise à jour.

0

Conservez le travail local inachevé sur une branche distincte et appuyez dessus.

  1. Il vous permettra de créer des commits correctement et de ne pas faire un énorme monstre à la fin.
  2. Il vous permettra d'avoir une copie de votre code sur le serveur de sorte qu'en cas de crash de disque ou quelque chose de similaire, vous ne perdrez pas votre travail.
  3. Il permettra aux autres de voir votre code et de le revoir avant de le déployer en production.

Le déploiement se produira généralement sur une seule branche. Tant que vous ne fusionnez pas vos modifications dans cette branche (bien que vous ayez besoin de vérifier cela chez vous), vous êtes en sécurité.

0

Prendre la 3ème option créer une nouvelle branche pour votre fonction.

Vous ne devez pas fusionner en développer jusqu'à ce que vous êtes prêt - fusionner développer en fonction à la place, chaque fois qu'il ya un changement que vous voulez tester.

  • Pour travailler sur le code de développement propre: développer développer.
  • Pour travailler sur le nouveau code de traducteur: vérifiez la fonctionnalité et fusionnez dans les dernières modifications de développer.
  • Lorsque la fonctionnalité est terminée: fusionner développer dans la fonctionnalité une dernière fois (si ce n'est pas déjà à jour), puis extraire développer et fusionner la fonctionnalité dans elle.