Commits (113)
*~
*.toc
*.out
*.aux
*.log
*.nav
*.pdf
*.snm
*.swp
*.vrb
stages:
- build
- deploy
beamer-build:
image: aergus/latex
stage: build
script:
- make
artifacts:
paths:
- "*.pdf"
tags:
- docker
synchronize:
stage: deploy
before_script:
- apt-get update -y
- apt-get install -y rsync
- echo "$ssh_key" > id_rsa
- chmod 600 id_rsa
script:
# In non-interactive context, don't check host identity
- rsync -e"ssh -i id_rsa -o StrictHostKeyChecking=no" -avz *.pdf apiInit@pica02.picasoft.net:~/artefact/git/
after_script:
- rm id_rsa
dependencies:
- beamer-build
tags:
- linux
only:
- master
\ No newline at end of file
24 janvier 2019
Rémy Huet (remy.huet@etu.utc.fr), Thibaud Duhautbout (thibaud@duhautbout.ovh), Quentin Duchemin (quentinduchemin@tuta.io), Romain Maliach (rmaliach@etu.utc.fr), Association Picasoft (picasoft@assos.utc.fr)
La présentation et tous les fichiers qui composent ce dépôt sont sous licence
Creative Commons 4.0 Attribution - Partage dans les Mêmes Conditions 4.0
International (CC BY-SA 4.0).
Vous êtes libre de partager (copier, distribuer et communiquer le matériel par
tous moyens et sous tous formats) et d'adapter (remixer, transformer et créer à
partir du matériel) ces fichiers pour toute utilisation, y compris commerciale.
Visitez https://creativecommons.org/licenses/by-sa/4.0/deed.fr pour plus
d'informations.
# Api/casoft Init Jour 4 : Git
## Description
Repo de la formation git de l'api/casoft Init. **En cas de questions :** [remy.huet@etu.utc.fr](mailto://remy.huet@etu.utc.fr), [thibaud@duhautbout.ovh](mailto://thibaud@duhautbout.ovh), [quentinduchemin@tuta.io](mailto://quentinduchemin@tuta.io).
Pour aller plus loin : lire la [documentation de git](https://git-scm.com/docs).
En cas de remarques sur la présentation (ou de questions aussi), vous pouvez utiliser le [système d'issues](https://gitlab.utc.fr/picasoft/apis/h19/init/git/issues).
## Présentation
La présentation au format PDF est disponible [ici](https://school.picasoft.net/artefact/git/main.pdf).
## Contribuer !
Créez une branche, et faites une merge request ! Faites la relire par un tiers qui la valide et la merge.
N'oubliez pas d'ajouter votre nom dans la license et dans les auteurs de `main.tex`
## Plan
Le plan est disponible [ici](docs/plan.md)
# Plan de la présentation
## À propos
La formation sur git durera une journée (~6/7 heures). Elle abordera à la fois l'utilisation de Git (local et remotes) mais aussi les méthodes de gestion de travail propres à GitLab.
**Comment lire ce plan ?**
Les sections sont numérotés en niveau 1. Les sous-sections en niveau 2. Une indentation sous la section/sous section est un titre, deux un sous-titre. Un niveau sans "fils" est une frame.
## Plan
1. Introduction
* OK - Qu'est ce que git ?
* OK - Pourquoi la gestion de version ?
* OK - Différents logiciels de gestion de version
* OK - Petite histoire de Git
*(transition ?)*
2. Versionner son travail
1. Configuration et initialisation
* OK - Création d'un dépôt Git
* OK - Configurer son identité
* OK - Configuration locale / configuration globale
2. Gestion théorique
* OK - Fonctionnement de Git
* Working Directory vs. Staging Area vs. Repository
* OK - Explications
3. Gestion linéaire en pratique
* Créer des versions
* OK - Working directory <-> staging area
* OK - Exemples
* OK - Staging area <-> repository
* OK - Dissection d'un commit
* Visualiser les différences
* OK - Git log
* OK - Git diff
* OK - Git show
3. Utiliser les versions
1. Le HEAD
* Qu'est-ce que le HEAD ?
2. Marquer une version
* Git tag
3. Mettre de côté ses modifications
* Enregistrer les modifications locales
* Restaurer les modifications locales
4. Parcourir l'historique
* Changer de version
* Revenir au dernier commmit
* Annuler des changements
5. Annuler des commits
* Sans modification d'historique
* Avec modification d'historique
* Git reset
* Git commit --amend
4. Utilisation des remotes
1. Présentation
* Le concept des remotes
* Exemples de remotes
* Création d'un dépôt distant
2. Récupérer du travail existant
* Cloner un dépôt existant
* Tirer des changements
3. Envoyer son travail
* Pousser des commits
5. Gestion non linéaire [branche gestion_non_lineaire non mergée]
1. Explications théoriques
* OK - Principe de gestion non linéaire
* Création d'une divergence
* OK - Principe de la gestion non linéaire
* OK - Explications
* OK - Création d'une divergence : analyse et mise en contexte
* OK - Illustrations / Exemple
* OK - Fusion
2. Application à Git
* OK - Gestion des branches
* OK - Changer de branche
* OK - Visualisation
3. Fusionner des branches
* OK - Le merge
* Le rebase
* OK - Avertissement
* OK - Comparaison avec le merge
* OK - Application simple
* Rebase interactif
* Le cherry-pick
6. Résolution de conflits
1. Les conflits
* Qu'est-ce qu'un conflit ?
* Exemple de situation conflictuelle
* Comment se présente un conflit ?
* Concrètement, quand peut-on avoir un conflit ?
* Merge
* Rebase
* Pull
2. Résoudre un conflit
* En théorie
* Application
3. Historiques divergents
* Quand parle-t-on de divergence ?
* Comment diverge-t-on ?
* Résoudre des divergences ?
7. Travail collaboratif avec Git et GitLab
1. Présentation de git flow
2. Présentation de GitLab