2015-08-05 4 views
3

Nous utilisons Git pour le contrôle de version. Je travaille sur un gros projet qui pourrait changer radicalement le code actuel. L'idée générale est de décomposer le projet en petits morceaux, et de les commettre à Git localement. Il est donc plus facile de suivre ce qui est mis à jour par de petites pièces.Git: meilleure pratique avec un grand flux de développement de projet

Cependant, le problème que j'ai est que certains des éléments fondamentaux ne sont pas encore finalisés, cela peut changer en raison de l'intégration avec le système existant. Un élément fondamental change (par exemple l'interface API, le nommage), toutes les dépendances doivent également être modifiées. Cela ne me permet pas de commettre de code. Étant donné que les validations enregistrées doivent être modifiées à nouveau en raison des changements d'éléments fondamentaux. Donc, je garde tout non engagé, et je les commettrai morceau par morceau une fois que l'élément fondamental sera vraiment finalisé.

Je ne pense pas que ce soit une bonne pratique. Je voudrais commettre les petits morceaux quand j'ai fini de modifier chaque pièce. Ne pas attendre que le grand projet soit presque terminé, et s'engager à ce moment-là. Comment devrais-je améliorer le processus de développement?

+0

Si vous changez l'API, vous devez changer tout le code en utilisant cette API, et c'est parfois un gros changement ... –

+2

Pourquoi ne pouvez-vous pas simplement créer une branche séparée? – Nadine

+2

Cela peut vous intéresser: http://nvie.com/posts/a-successful-git-branching-model/; et rebase est votre ami. :) –

Répondre

2

Je recommande de créer une nouvelle branche pour votre travail. Vous pouvez suivre ces étapes.

git branch 

La commande ci-dessus vous donnera une liste de vos branches de courant, semblable à ceci:

production 
* master 
testing 

L'un avec une étoile à côté est la branche que vous utilisez actuellement. Prenez note de cela.

Maintenant, créez une nouvelle branche (ici je l'ai appelé « le développement », vous pouvez le nom de quoi que ce soit):

git branch development 
git checkout development 

Tout ce que vous vous engagez ou pousser désormais ira sur la branche appelée development. Sur une base régulière, vous devez faire cette commande pour vous assurer de rester en phase avec tout le monde branche d'autre utilise (remplacez master par le nom que vous avez écrit avant):

git merge master 

Lorsque vous avez terminé avec tout, et que vous voulez ajouter votre code à la branche commune, faites ceci:

git checkout master 
git merge development 

maintenant, vous êtes nouveau sur la branche d'origine et il contient tous le nouveau code. Vous pouvez obtenir des conflits de fusion que vous devrez résoudre à ce stade. Alternativement, vous pouvez continuer à utiliser la branche de développement pour toujours au lieu de revenir à master.

+0

Je ressemble plus à demander comment utiliser rebase pour nettoyer ma branche de développement local.Comme certains des changements fondamentaux pourraient avoir besoin de rebaser dans des commits plus tôt. – Stan