« STIC:STIC I - Atelier technique 1 » : différence entre les versions
Ligne 164 : | Ligne 164 : | ||
[[Fichier:Git et GitHub dans un projet open-source.png|800px|vignette|néant|Git et GitHub dans un projet open-source]] | [[Fichier:Git et GitHub dans un projet open-source.png|800px|vignette|néant|Git et GitHub dans un projet open-source]] | ||
À retenir : | ; À retenir : | ||
* Git = système de version de fichiers en local. Vous pouvez travailler sur plusieurs versions de votre projets : | * Git = système de version de fichiers en local. Vous pouvez travailler sur plusieurs versions de votre projets : | ||
Ligne 176 : | Ligne 176 : | ||
** Attention à ne pas confondre public = open-source et privé = non open-source, c'est la '''licence''' qui détermine le type de projet | ** Attention à ne pas confondre public = open-source et privé = non open-source, c'est la '''licence''' qui détermine le type de projet | ||
À savoir : | ; À savoir : | ||
* On peut utiliser Git sans GitHub, mais c'est difficile de pouvoir utiliser GitHub sans Git (quoi que possible si on travail juste avec l'interface du site) | * On peut utiliser Git sans GitHub, mais c'est difficile de pouvoir utiliser GitHub sans Git (quoi que possible si on travail juste avec l'interface du site) | ||
Ligne 183 : | Ligne 183 : | ||
** [https://www.visualstudio.com/fr/team-services/ Visual Studio Team Services] | ** [https://www.visualstudio.com/fr/team-services/ Visual Studio Team Services] | ||
* On peut utiliser Git et GitHub avec n'importe quel type de projet/fichier (pas que développement web) | * On peut utiliser Git et GitHub avec n'importe quel type de projet/fichier (pas que développement web) | ||
; À éviter : | |||
* '''Évitez''' de créer des projets/repository Git dans de dossier qui sont lié à un système de synchronisation de données (e.g. Dropbox, OneDrive, Google Drive) | |||
=== Installation des logiciels === | === Installation des logiciels === |
Version du 30 octobre 2017 à 19:30
Programme
Au programme (peut changer) :
- Introduction du projet Webmaster (évalué dans le cadre du cours STIC II)
- Ligne de commande
- Git/GitHub
- Permission fichier sur serveur distant (s'il reste du temps)
Projet Webmaster
Pour toute information voir :
En bref :
- Travail qui sera évalué dans le cadre de l'ex16 du cours STIC II (fin de la première année)
- Ce n'est pas un projet comme dans le sens des cours ERGO II, VIP II, ...
- Types de projets possibles :
- Default : Installation et configuration d'un portail web (e.g. Word_press, Moodle, Mediawiki)
- Alternatif : Développement d'un site/application full stack (front-end + back-end) avec JavaScript (voir Node.js, Express.js, Socket.io)
- D'autres projets peuvent être envisagées (e.g. logiciel desktop avec Electron, Internet/Web of things, etc.). Vous pouvez nous soumettre votre idée de projet.
Les ateliers techniques vous proposent des techniques/outils pour mener à bien ce(s) projet(s).
Tâche pour le prochain Atelier
Réfléchir sur une idée de projet à développer pour le projet Webmaster. Pour inspiration voir les projets des étudiants des autres volées :
- Exercice 16 volée Wall-e
- Exercice 14 ou Projet Webmaster pour les volées précédentes
* Attention : pour des raisons de sécurité les projets webmaster des étudiants sont accessibles seulement sur le réseau de l'UNIGE ou via VPN
Activités
Ligne de commande
Logiciel
Utilisation d'un logiciel pour accèder à la ligne de commande. Attention : l'utilisation de la ligne de commande peut générer des opérations irréversibles !
Logiciels :
- Pour Windows utiliser Windows PowerShell
- Pour Mac utiliser le Terminal
- Pour Linux utiliser l’une des lignes de commandes disponibles selon la version.
Position actuelle
Lorsque vous utilisez la ligne de commande, faites toujours attention à la position actuelle dans le système, que ce soit en local ou sur un serveur distant.
Pour récupérer votre position actuelle si elle n'est pas visible, utilisez :
pwd
C'est l'acronyme de "Print Working Directory".
Commandes principales
Il y a eu un effort dans les dernières années pour uniformer certaines commandes dans les différentes plateforme (Win vs. Unix). Les commandes listées par la suite fonctionnent généralement sur tous les systèmes :
- Changer de dossier
cd
C'est l'acronyme de Change Directory. On utilise cette commande avec des chemins absolus ou relatifs à la position actuelle.
Vous pouvez faire référence aux différents niveaux de l'arborescence par rapport à la position actuelle avec les notations suivantes :
./
fait référence au dossier actuel- attention à ne pas confondre avec
/
(sans point) qui fait référence à la racine de votre système où se trouvent des fichiers importants !
- attention à ne pas confondre avec
../
fait référence à un niveau supérieur../../
fait référence à deux niveaux supérieurs- etc.
~
fait référence au dossier utilisateur (dont la position peut varier selon le système d'exploitation).
Examples :
cd documents
cd ../stic-1/ex1/
cd ~/Documents
cd /home
Hint:
- vous pouvez vous aider avec la touche TAB pour complèter des noms des fichiers très long. Cette pratique s'applique à tous les commandes
- vous pouvez trainer un dossier depuis votre gestionnaire de fichiers dans le terminal de commande pour faire apparaître son chemin
- pour windows seulement : quand vous êtes au bon chemin dans votre gestionnaire de fichiers appuyez sur les touches
Ctrl + l
(comme lausanne) et tapezpowershell
dans la barre de l'adresse.
- Lister les fichiers
ls
On utilise cette commande pour afficher une liste de dossiers/fichiers existants à un chemin donné. Si la commande n'a pas d'argument, la position actuelle sera prise en compte. Si non, il est possible de fournir :
- Un chemin absolu ou relatif, e.g.
ls /home
va lister tous les éléments contenu dans le dossier home qui se trouve à la racine du système - Un critère de selection, e.g.
ls *.png
va lister tous les fichiers qui terminent avec .png
- Créer un dossier
mkdir nom-du-dossier
C'est l'acronyme de Make Directory. On utilise cette commande pour créer un nouveau dossier à un chemin donné (dans la position actuelle si on spécifie juste le nom du nouveau dossier).
Examples :
mkdir my-new-folder
mkdir ~/Documents/atelier-webmaster
- Copier un fichier/dossier
cp chemin-du-fichier-existant chemin-de-la-nouvelle-copie
On utilise cette commande pour créer une copie d'un fichier existant et la placer dans un autre endroit.
Examples :
cp documents documents-old
cp file.txt /home/backup/file.txt
- Déplacer un fichier/dossier
mv chemin-du-fichier-actuel nouveau-chemin-du-fichier
On utilise cette commande d'une manière similaire à cp
avec la différence que le fichier lui-même sera déplacé à un nouveau endroit.
Examples :
mv stic-1/ex12/ stic-2/ex12/
- Détruire des fichiers/dossiers
Il existe des commandes également pour détruire des fichiers/dossiers mais on les verra pas ici. Ces commandes sont en effet irreversibles (i.e. les fichiers ne sont pas mis dans la corbeille).
Git/GitHub
Git (logiciel de gestion de version en local) et GitHub (extension online de Git) sont des outils qui sont très utilisés à présent et leur connaissance, au moins au niveau de base, peut être utile à plusieurs niveaux. En effet, ils ne sont pas utilisés exclusivement pour la programmation, mais également pour :
- Maintenir un site web
- voir GitHub Pages
- Écrire/maintenir de la documentation online
- Écrire des livres
- Mettre à disposition du matériel d'un cours (online)
- Créer une classe virtuelle avec des devoirs qui prévoient du codage
- voir GitHub Education
- voir GitHub Classroom
- ...
En plus, la participation dans des projets open-source disponibles sur GitHub ne se limite pas à l'écriture du code. Les projets recherchent souvent d'autres type de participation tels que :
- La gestion du projet
- Collecter/répondre aux "Issues" soulevées par les utilisateurs
- Tester/débugger les projets
- Corriger l'orthographe
- ...
Présentation
- À retenir
- Git = système de version de fichiers en local. Vous pouvez travailler sur plusieurs versions de votre projets :
- Créer des "branches" pour tester des nouvelles fonctionnalités
- Révenir à une version précédente si quelque chose ne marche pas correctement
- ...
- GitHub = plateform de développement collaborative pour projet
- Vous pouvez travailler à plusieurs sur le même projet
- Les projets peuvent être publics (default) ou privés (versions payante)
- Les projets peuvent être open-source ou pas
- Attention à ne pas confondre public = open-source et privé = non open-source, c'est la licence qui détermine le type de projet
- À savoir
- On peut utiliser Git sans GitHub, mais c'est difficile de pouvoir utiliser GitHub sans Git (quoi que possible si on travail juste avec l'interface du site)
- On peut utiliser Git avec d'autres services online, e.g. :
- On peut utiliser Git et GitHub avec n'importe quel type de projet/fichier (pas que développement web)
- À éviter
- Évitez de créer des projets/repository Git dans de dossier qui sont lié à un système de synchronisation de données (e.g. Dropbox, OneDrive, Google Drive)
Installation des logiciels
Git
- Installez le logiciel git depuis le site officiel : https://git-scm.com/
- Suivre les instructions Git_et_Github#Installer_Git
- Il faudra configurer Git à travers la ligne de commande
- Attention : utilisez le nom d'utilisateur et l'adresse email que vous avez utilisé pour créer votre account GitHub
- Nom d'utilisateur
git config --global user.name "votre username GitHub"
git config --global user.email votre-email-account-github@domain.com
Ces configurations vont permettre par la suite de reconnaître vos contributions, par exemple dans un projet commun.
Optionnel : Git dans éditeur de texte
Il y a la possibilité d'ingérer git directement dans des éditeurs de texte, par exemple :
- Installer extension pour utiliser Git directement dans Brackets (ça marche mais pas idéal)
- Installer Visual studio code qui a déjà Git intégré (préférable si vous comptez utiliser sérieusement Git)
GitHub
- Créer un account sur le site https://github.com/ si pas fait lors de l'atelier MINIT
GitHub Desktop
- Installez GitHub Desktop https://desktop.github.com/
Documentation logiciel : https://help.github.com/desktop/guides/
Activités prévues
Tutoriel interactif
Bon tutoriel initial disponible directement dans le navigateur sur le site de GitHub. Suivre toutes les étapes :
- sur le site GitHub.com
Création d'un projet sur GitHub et le cloner avec GitHub Desktop
Créer un répositoire sur GitHub.com qui simule un projet public/open-source, cela permet de voir :
- Utilisation du site GitHub.com
- Utilisation de GitHub pour Desktop
Pour plus d'info voir
- Première étape - Créer le projet sur GitHub.com
Suivre les étapes suivantes :
- Sur le site GitHub.com, lorsque vous avez fait le login, cliquez sur le
+
et choisissezNew repository
- Saisissez les données requises (à vous de choisir des informations saillantes pour un potentiel projet open-source) en faisant attention à :
- Cochez l'option Initialize this repository with a README
- Choisir une option dans le menu déroulant Add a license (voir une page qui vous aide à choisir, si non vous pouvez mettre MIT pour cet exemple)
- Cliquez sur
Create repository
, vous êtes redirigés sur la page de votre projet qui doit ressembler à celle-ci :
Si vous cliquez sur le fichier LICENSE vous pouvez voir les détails des droits que vous avez spécifié pour votre projets.
- Deuxième étape - Cloner le projet sur votre ordinateur avec GitHub Desktop
Suivre les étapes suivantes :
- Ouvrez le logiciel GitHub Desktop
- Si vous l'ouvrez pour la première fois, il vous faudra vous loguer et confirmer les informations pour Git (Nom et Email)
- Ensuite cliquez sur le bouton
Clone a repository
ou faitesFile > Clone repository...
si vous ne l'avez pas - Choisissez le projet que vous venez de créer, décidez à quel endroit le mettre sur votre ordinateur et cliquez sur
Clone
- Ouvrez le dossier en local avec votre Gestionnaire de fichiers, vous devez voir :
- Un dossier caché qui s'appelle .git (si vous ne le voyez pas cherchez sur internet comment afficher les fichiers cachés dans votre ordinateur)
- Le fichier LICENSE
- Le fichier README.md
Participer à un projet déjà existant
Petit hands-on sur comment on peut participer/contribuer à un projet déjà existant :
- Fork du projet https://github.com/MALTT-STIC/stic-webmaster-test-xerneas
- Créer un fichier VotreLoginCourt.md || VotreLoginGitHub.md dans la racine du projet
- Envoyer une pull request au projet initial pour incorporer le changement
Pour plus d'infos voir
Création d'un projet en local qui utilise git
Créer son propre projet Git en local et découvrir les commandes de bases :
- git init
- git add [params]
- git commit [params]
- git branch [params]
- git checkout [params]
- ...
Pour plus d'infos voir Git - Reference sur le site officiel de Git
Ressources
Ligne de commande
Git/GitHub
- Git et Github
- Guides sur le site officiel GitHub
- Glossaire sur le site officiel GitHub
- GitHub Training & Guides sur YouTube
- GitHub Pages
GitHub Education & Classroom
- GitHub Education : utilisation de GitHub dans l'éducation
- Voir notamment GitHub Classroom pour créer des "assignments" à travers GitHub
Open Source
- Open Source Initiative
- Choose an open source licence (synthèse et suggestions des licences proposées par GitHub)