This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
2018_2019:s3:methodo:td:git [2018/09/03 17:30] blay [I. A chacun son projet dans gitlab] |
2018_2019:s3:methodo:td:git [2018/09/04 15:20] blay [Git comme historique des modifications] |
||
---|---|---|---|
Line 36: | Line 36: | ||
- Ajoutez un de vos camarades à ce projet (vous pourrez revenir sur ce point plus tard). {{ :2018-2019:gitlab:ci:addmember.png?direct&200 |}} | - Ajoutez un de vos camarades à ce projet (vous pourrez revenir sur ce point plus tard). {{ :2018-2019:gitlab:ci:addmember.png?direct&200 |}} | ||
- Placez-vous bien dans le répertoire sur votre machine où vous désirez garder un lien avec le dépôt distant. | - Placez-vous bien dans le répertoire sur votre machine où vous désirez garder un lien avec le dépôt distant. | ||
- | - Dans le terminal : <code> git config --global http.sslVerify false </code> | + | - Dans le terminal : <code> git config --global http.sslVerify false </code> ((si vous n'avez pas "GIT" sur votre machine personnelle, vous pouvez passer au point III pour télécharger sourceTree qui contient Git puis suivez les instructions de Dorian sur Slack, à savoir : "Pour avoir la console Git pour ceux qui ont dl SourceTree, vous pouvez faire un raccourcis de git-bash ou git-cmd depuis C:\Users\<username>\AppData\Local\Atlassian\SourceTree\git_local")) |
- Exécutez en ligne de commandes et comprenez **pas à pas** les instructions qui vous sont données sous ''détails'' pour définir la configuration globale et créer le dépôt {{ :2018-2019:gitlab:ci:instructioncreationdepot.png?direct&800 |}} et ce faisant **répondez aux questions suivantes** : | - Exécutez en ligne de commandes et comprenez **pas à pas** les instructions qui vous sont données sous ''détails'' pour définir la configuration globale et créer le dépôt {{ :2018-2019:gitlab:ci:instructioncreationdepot.png?direct&800 |}} et ce faisant **répondez aux questions suivantes** : | ||
- "git clone ..." qu'est-ce qui a été modifié dans votre répertoire (pensez aux fichiers cachés). | - "git clone ..." qu'est-ce qui a été modifié dans votre répertoire (pensez aux fichiers cachés). | ||
Line 63: | Line 63: | ||
- | ==== Créer/Récupérer un nouveau dépôt (info) ==== | ||
- | <note warning> | ||
- | A ne pas faire dans le cadre de ce TD car nous l'avons déjà fait, cependant, cela peut être utile par la suite. | ||
- | </note> | ||
- | Pour commencer à travailler avec Git, il y a deux solutions : | + | Voir ici pour cette partie : [[2018_2019:s3:methodo:td:git:lignescommandes|Il faut lire plus loin que le 1.]] |
- | * soit vous créez un nouveau dépôt vide, si vous souhaitez commencer un nouveau projet <code> git init </code> | + | |
- | * soit vous clonez un dépôt existant, c’est-à-dire que vous récupérez tout l’historique des changements d’un projet pour pouvoir travailler dessus. **C'est ce que nous avons déjà fait, par l'instruction ** <code> git clone adresse_du_dépôt_distant </code> | + | |
- | A noter, que si vous travaillez sous Github ou BitBucket, en général, on crée le dépôt sur le site puis on le clone, comme nous l'avons fait précédemment. | ||
- | ==== Git comme historique des modifications ==== | ||
- | |||
- | - Créer un fichier ''Menu.txt'' contenant les plats de votre restaurant favori, ligne par ligne. <code> | ||
- | Salade norvégienne | ||
- | Œufs fauchés | ||
- | Steak tartare | ||
- | Filet de dorade | ||
- | Profiteroles | ||
- | </code> | ||
- | - Comment interprétez-vous le résultat de la commande suivante <code> git status </code> | ||
- | - Ajoutez le fichier ''Menu.txt'' comme git vous l'a dit : <code> git add Menu.txt</code> | ||
- | - Réinterprétez le résultat de la commande ''git status''. | ||
- | - Le fichier ''Menu.txt'' est maintenant prêt à être versionné. <code> git commit -m "construction de la carte" </code> **ou** <code> git commit </code> ((Un éditeur s'ouvre qui dépend de votre configuration. S'il ne vous convient pas, vous pouvez le configurer par exemple <code> git config --global core.editor emacs </code>)) Quel message avez-vous en retour? | ||
- | - Que donne la commande ''git status'' ? | ||
- | - Apportez quelques modifications au fichier ''Menu.txt''. Essayez de commiter ces modifications. Que se passe-t-il ? En vous aidant de la documentation accessible en tapant ''git help commit'', versionnez ces modifications (avec un message décrivant le changement) (( Au lieu d'un git add suivi d'un git commit vous pouvez préférer <code> git commit -a -m "ajout des aubergines"</code> )) | ||
- | - Affichez l’historique des modifications du dépôt. <code> git log </code> Et pour voir les modifications apportées par le dernier commit <code> git log -p -1 </code> et savoir qui fait quoi <code> git log --stat </code> ou <code> git log --pretty=format:"%h - %an, %ar : %s"</code> **etc.** | ||
- | - En utilisant ''git diff'' , visualisez les modifications effectuées entre le premier commit et le second commit. Par exemple <code> git diff 71cfcd6 0c24491 </code> Attention l'ordre des commits modifie le résultat (un- devient un +). | ||
- | - Modifiez plusieurs fois le Menu afin d’en avoir plusieurs versions. | ||
- | - Le dernier plat ajouté ne vous plait finalement pas. Il existe deux manières de revenir à une version antérieure : de manière temporaire ou définitive. | ||
- | - Exécuter ''git log'' et récupérez le hash (HASH) du commit où vous souhaitez revenir en arrière. | ||
- | - Pour revenir en arrière de manière temporaire, exécutez <code> git checkout HASH</code> | ||
- | - Vérifiez que votre fichier Menu.txt est dans son état antérieur. | ||
- | - Revenez au dernier commit (HEAD) en exécutant <code> git checkout master</code> | ||
- | - Pour revenir en arrière de manière définitive, et donc supprimer tout ce que vous avez fait depuis ce moment : <code> git reset --hard HASH </code> | ||
- | - Dans ''git log'', vérifiez que tout ce que vous aviez effectué depuis ce commit a été effacé. | ||
Line 162: | Line 130: | ||
- Commitez/envoyez les modifications. Que se passe-t-il ? Remédiez au conflit. | - Commitez/envoyez les modifications. Que se passe-t-il ? Remédiez au conflit. | ||
- | ==== Tags ==== | ||
- | Si sur votre machine personnelle vous n'avez pas git, passez directement au point III et installez sourceTree. | ||
- | Git donne la possibilité d’étiqueter un certain état dans l’historique comme important grâce à un « tag ». Ces tags sont couramment utilisés pour marquer des états de publication (//e.g//. v1.0, v1.1, …). | ||
- | Deux types de tags sont disponibles : | ||
- | * Les tags légers : un pointeur sur un commit spécifique | ||
- | * Les tags annotés : stockés sous forme d’objets, ils contiennent une somme de contrôle, le nom et l’email du créateur, la date de création, un message et éventuellement une signature GPG. | ||
- | Dans le cadre de cette matière, nous utiliserons que des tags légers. Pour plus d’informations sur le mécanisme de tags annotés, voir les ressources. | ||
- | |||
- | - Reprenez votre fichier « Menu.txt » et apportez-y des modifications. La nouvelle version obtenue correspondra à la carte qui sera publiée au guide Michelin 2017. Pour marquer cette importance, nous allons associer le tag « michelin » au prochain commit : Créez une étiquette ‘michelin17’ <code> git tag michelin17</code> | ||
- | - Listez les étiquettes disponibles <code> git tag </code> | ||
- | |||
- | Attention ! Les tags ne sont pas poussés automatiquement sur un serveur distant. Il faut demander explicitement à pousser les étiquettes après les avoir créées localement (cf. cheat sheet) ou utiliser l’option –-tags | ||
- | |||
</panel> | </panel> | ||
</accordion> | </accordion> |