---
# System prepended metadata

title: Git

---

# Git

## Git clone
Permet de créer une copie locale d'un repository git.

*********
syntaxe:
git clone
*********

## Git add
Git add permet de choisir quels fichiers mettre dans un "commit" (explications plus tard).

*********************
syntaxe:
git add monfichier.ml
*********************

NB: ne pas utiliser
git add . 
qui ajoute tous les fichiers du répertoire courant. Vous pourriez ajouter des fichiers indésirables non souhaités par les correcteurs.

## Git status
Git status vous permet de voir tous les fichiers que vous avez add et tous ceux qui ne le sont pas.

**********
syntaxe:
git status
**********

en vert :
Vos fichiers ont bien été add et aucune modification n'a été apportée depuis.
en rouge : 
Tous les fichiers que vous n'avez jamais ajouté ou qui ont subis des modifications depuis que vous les avez add.

Exécutez la commande git add sur tous les fichiers que vous souhaitez rendre ou rerendre (parce que vous les avez modifiés).
Vous pouvez add plusieurs fichiers avant de commit.


## Git commit

Vous permet de créer un paquet contenant tous les fichiers que vous avez add.

**********
syntaxe:
git commit -m "un message non vide expliquant vos changements"
**********

Attention, cela ne met pas à jour votre repository git distant !
Vous pouvez aussi faire autant de commit que vous voulez avant de push.

## Git push

Vous permet de mettre à jour votre repository git distant en lui transmettant toutes les modifications que vous avez enregistrées dans vos commits.

********
syntaxe:
git push
********

## Git pull

Permet de mettre à jour votre clone local à partir du repository distant

Tous les changements que vous ne possédez pas localement (généralement parce que vous avez push depuis un autre pc) seront téléchargés.

********
syntaxe:
git pull
********

Généralement on prend l'habitude de toujours faire un git pull avant un git push

## En cas de soucis sur les commandes au-dessus
Juste lisez bien le message d'erreur, généralement git vous dit que faire.

# Ce qu'il faut rendre
Dans la page du sujet sur acdc.epita.fr vous aurez TOUJOURS une représentation du style:
|-- caml-tp2-jean-christophe.antoine/
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-- AUTHOR
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-- README
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|-- tp2.ml
Ici il est CLAIREMENT écrit qu'il faut rendre un fichier tp2.ml, un fichier AUTHORS (et pas AUTHORS.txt !), et un fichier README (et pas README.txt !). Le tout dans le dossier que vous avez clone.
Nous ne voulons aucun autre fichier !
Vous ne devez pas vous tromper quand vous nommez vos fichiers !

## AUTHORS
il contient votre login précédé de la chaîne de caractères suivante : "* "
Rien d'autre !

## README
Vous DEVEZ le remplir !
Il doit contenir vos impressions sur le tp, vos difficultés, les problèmes rencontrés, jusqu'où vous êtes allés et pourquoi pas une blague pour nous motiver quand on corrige vos TPS.

# Commandes linux utiles pour mener à bien votre tp

touch monfichier.ml
--> créé un fichier appelé monfichier.ml

emacs monfichier.ml
--> ouvre le fichier monfichier.ml avec emacs

cd directory
--> vous déplace dans le dossier directory

ls
--> affiche les fichiers et dossiers dans le dossier où vous vous situez.

# Travailler depuis chez vous

On vous recommande vraiment de travailler sous linux, vm ou dual boot comme vous voulez.
Faites un git clone et travaillez comme à Epita.
N'oubliez jamais de git pull avant de git push pour éviter des situations bloquantes.
Vous aurez besoin de générer une nouvelle clé SSH, vous pouvez suivre le tutoriel du TP0 disponible sur la page algo-td.

# Rendus
Les rendus sont le mardi à 23h42. Aucun retard possible (vous ne pourrez plus rendre).
Ne rendez que les fichiers demandés dans le sujet. Ni plus ni moins.