jeudi 19 mai 2016

Tuto Git - Commiter calmement

Vous l'aurez compris Git est loin d'être intuitif pour ceux qui auraient l'habitude d'un autre outil de gestion de configuration c'est un peu... la panique. Pourtant on est toujours dans une logique Checkout / Commit.

Mais nous allons nous en sortir, la meilleure page de doc est la suivante à lire rapidement est :

Git.scm - 2.2 Les bases de Git - Enregistrer des modifications dans le dépôt

Notez le diagramme des états du fichier en gestion de configuration avec Git :

Git - Etats du fichier en gestion de configuration

Création de la "localisation" dans les fichiers ressources du projet

Je vais m'intéresser à la création de la "localisation" de mon application. Je souhaite que mon application parle plusieurs langues. Je vais donc créer automatiquement des fichiers de ressources.

Avec Visual Studio, je me positionne dans la partie Design du formulaire que je souhaite "localiser", ici il s'agit du formulaire de Login des utilisateurs qui se trouve dans le répertoire Member. Et je clique sur le menu Outil->Créer automatiquement des fichiers de ressources. Voilà le travail est fait, le fichier :
/Member/App_LocalResources/Login.aspx.resx est créé.

Je créé la langue "en" (English) en dupliquant le fichier Login.aspx.resx et en le renommant en Login.aspx.en.resx puis je traduis les labels.

Voilà, c'est terminé !

Vous pouvez retrouver ce travail sur le site GitHub du projet : ASP-NET-Survey-Online

Commiter ce travail de "localisation"

Je cherche maintenant à commiter ce travail dans mon GitHub. On me dit que la meilleur commande pour savoir ce qu'il se passe, c'est de vérifier l'état des fichiers par :

$git status

Command Git Status
Si je compare avec ce que j'obtiens dans Git UI :

Git UI
Pas de doutes, c'est sensiblement la même chose. Et maintenant comment commiter ?

Ignorer certains fichiers

C'est indispensable pour une bonne gestion du votre projet. En effet "mettre sous surveillance" des fichiers inutile peut être néfaste...

Posez, à la racine du répertoire un fichier .gitignore avec au moins une ligne (Visual Studio)  :
*.suo

Pour ignorer les fichiers de Visual Studio, whaou mais .gitignore n'est pas un nom de fichier ! ... ma ma ma poua grrrrr ! Donc la seule façon de créer un fichier .gitignore, c'est avec la console Git Bash et la commande :

$ echo "*.suo" > .girignore

Et oui, pensons Linux !

Checkout master

Voici, ici expliquée la philosophie du truc. Dans le Tuto Git précédent on est coincé, on va donc chercher à "Brancher" à "Merger" pour se retrouver sur la branche master. Car une branche HEAD à été crée pour réaliser cette nouvelle fonctionnalité et l'on en a plus besoin.

https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Brancher-et-fusionner%C2%A0%3A-les-bases

On ouvre "Visualize All Branch history" de Git UI menu "Repository" et l'on obtient "après opération", le résultat suivant :

gitk
J'ai donc checkouté la branche master. Je veux essayer de Merger Head avec master. Je retourne dans Git UI. Je Merge->Local Merge... Et je peux alors pusher sur le serveur.

Je pushe pour mettre mon travail sur le serveur :

Git me laisse Pusher ma branche mergée
Je vérifie et ça fonctionne, j'ai bien la Localization dans mon GitHub :

Résultat du Push je retrouve mon travail sur le serveur GitHub
C'est un peu empirique mais bon ...

Pour aller plus loin je vous propose une vidéo :

https://www.grafikart.fr/formations/git/fork-pull-request
Ca part d'un peu trop loin, en plus il mélange GitHub et Bitbucket mais c'est intéressant sur les notions de Fork et de PullRequest.

Comprendre la philo de Git

C'est une différence essentielle entre Git et TFS avec TFs vous travailler sur la branche principale, le tronc. Vos modifications sont en différence par rapport au tronc et c'est elles qui constituent le "commit" ou le "checkin".

Avec Git, dès que vous avez une modification à faire, vous devez créer une branche et c'est la branche que vous commitez. Sans branche point de commit !

Have fun !

Aucun commentaire:

Enregistrer un commentaire