25 votes

Ce sont communs antipatterns de l'utilisation de Git?

Comme Git newbie, j'ai réalisé que j'ai été en utilisant comme s'il s'agissait de la Subversion. par exemple, en travaillant toujours sur le master, ne pas s'engager localement avant de tirer des modifications etc. Il en résulte souvent évitables fusion manuelle des situations. Quelles sont les autres communes antipatterns de l'utilisation de Git?

20voto

Jakub Narębski Points 87537

Grosse boule de changements

Lorsque vous écrivez le message de validation, et vous ne savez pas quoi mettre en ligne résumé des changements, il ne veut probablement dire que vous mettez trop de indépendants de choses dans un seul commit. Mieux split s'engager dans de plus petites, à l'aide de "git rebase --interactive"et/ou "git add --interactive" et ses amis "(comme"git stash --keep-index" pour tester planqué changements).

Seul problème pour commettre aidera énormément lorsque vous essayez de trouver un bug à l'aide de "git bisect".

8voto

Daenyth Points 11297

C'est plus général que git-spécifique, mais j'ai vu de nombreux de nombreux projets avec la validation des messages comme "correction" ou "fix foo" ou "trucs". Ne pas le faire, au lieu significatif commettre des messages comme "composant fiz: Correction foo bug[\n\nExtra info]" et "Espaces de nettoyage". Vous serez fier de vous-même lorsque vous inévitablement, regardez vos commettre l'histoire plus tard et n'ont pas besoin de dire "Ce que l'enfer ne je veux dire quand j'ai commis des "trucs"?"

8voto

ThiefMaster Points 135805

La relocalisation d'une branche qui a déjà été publié ou fusionnées à partir de (et puis re-publication de cette branche). Ce faisant, tout le monde vous déteste, car elle entraîne de terribles problèmes puisque vous avez juste réécrit l'histoire et demander aux gens qui ont fusionné à partir de votre pré-rebase direction pour résoudre les problèmes introduits par votre rebase manuellement.

Voir aussi http://hades.name/blog/2010/03/03/git-your-friend-not-foe-vol-4-rebasing/ pour plus de détails.

7voto

Chris Moschini Points 7278

Ne pas utiliser git stash

Scénario: Vous travaillez sur la caractéristique A. Il vous est pris environ 2 jours, et que vous êtes sur un jour de l'avoir terminé. Vous avez obtenu un bon code est écrit, mais il ya plus à faire. Votre patron se montre et dit "Hey j'ai besoin de la Caractéristique B maintenant. Devrait prendre 10 secondes."

Assurez-vous - 10 secondes à écrire, 2 jours de travail perdus. Ou 2 heures à essayer de commenter et de pirater tout le code que vous avez écrit pour le passé 2 jours à tout remettre à un état de fonctionnement.

git stash est là pour sauver la journée. Juste type git stash à la ligne de commande, à la racine de votre projet et de vos récents changements vont dans la "cachette", qui est une pile de modifications. Maintenant vous êtes de retour où vous étiez il ya 2 jours, mais votre travail n'est pas perdu. Vous faites le 10 deuxième changement, de l'archiver, puis tapez git stash pop pour obtenir vos modifications (et de les retirer de la pile).

Comme peut-être évident, si vous êtes confronté à un TERRIBLE jour, vous pouvez ranger plusieurs fois, bien que, évidemment, le plus vous le faites, le moins de plaisir la fusion peut être lorsque vous avez enfin git stash pop tous. Si vous parvenez à accumuler beaucoup de cachette au fil des mois de travail que vous avez git stash list pour les regarder par-dessus, git stash pop et git stash drop de choisir ceux qui valent la peine de ramener et qui sont les meilleurs pour juste lancer, et d' git stash clear si vous n'en cachette terrible idées.

5voto

detly Points 11267

Comme quelqu'un qui a utilisé SVN beaucoup avant récemment de commencer à utiliser Git de plus en plus, je peux dire que mon pire habitude est en train de faire git commit, git push, git commit, git push, git commit, git push...

En d'autres termes, en poussant toujours après chaque commit, comme je suis encore en utilisant SVN.

Après la formation initiale nécessaire pour supprimer cette habitude, mon flux de travail est beaucoup plus rapide. L'un des bienfaits de Git est le fait qu'une validation est d'autant plus rapide qu'une distance s'engager. Un autre atout est qu'à défaut de faire à peu près constante à distance s'engage ne va probablement pas à prendre à la jambe par la suite (surtout si c'est une petite équipe, même si c'est une grosse équipe).

Pour moi, c'est là où il n'y a pas de véritable analogie dans le SVN (qui n'invoquent pas Jakub Narębski de la "grosse boule de changements" anti-modèle).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X