# TP : Les commandes de base

## Mise en place et instructions

Pour ce TP, vous aurez besoin de [Git et Git Bash](https://gitforwindows.org/).

**À la fin de la séance du 17/09/2020**, merci de déposer un fichier .zip/.rar (ou équivalent) à [cette adresse](https://drive.google.com/drive/folders/1xRo1n-P9TCbl5Ku9oej_MnbQSCNaxTmB?usp=sharing), au format **NOM\_prenom\_TP01.zip**, contenant :\
\- L'intégralité de votre dossier de travail (le dossier masqué .git doit être présent)\
\- Un fichier (txt, pdf, docx, ...) contenant les commandes jouées lors de ce TP

Vous êtes libre d'ajouter à votre rapport les difficultés rencontrées.

## Un premier projet

Créez un dossier pour votre projet. Placez-y le fichier **index.html** ci-dessous :

{% code title="index.html" %}

```markup
<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h1>This is a Heading</h1>
    <p>This is a paragraph</p>
</body>
</html>
```

{% endcode %}

Initialisez le dépôt Git pour ce dossier. Le résultat doit être similaire à :

```
Initialized empty Git repository in C:/Users/corentin/monprojet/.git/
```

Identifiez vos prochains commits en définissant votre nom d'affichage et votre adresse email. Vous pouvez définir ces paramètres de manière globale en utilisant l'option `--global`

{% hint style="info" %}
Si vous avez déjà effectué cette manipulation en utilisation l'option `--global`, vous n'avez pas besoin de l'effectuer à nouveau.&#x20;
{% endhint %}

Consultez l'état du dépôt. Le résultat doit être similaire à :

```
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.html

nothing added to commit but untracked files present (use "git add" to track)
```

Ajoutez le fichier **index.html** à l'index Git. Si on consulte à nouveau l'état du dépôt, le résultat doit être similaire à :

```
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   index.html
```

Commitez les modifications ajoutées à l'index précédemment, en indiquant le message :

```
Ajout du fichier index.html
```

Le résultat de la commande est le suivant :

```
[master (root-commit) 47bf4f7] Ajout du fichier index.html
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 index.html
```

## Pour être bien sûr... (et tenir jusqu'à la fin  🙄)

Dans votre rapport, ajoutez les réponses aux questions suivantes :

1. Deux commits peuvent-ils avoir le même identifiant (hash) ? Si oui, dans quel cas ?
2. Peut-on ajouter d'un seul coup tous les fichiers d'un dossier au *stage* ? Si oui, comment ?
3. Peut-on ajouter un fichier au *stage* si celui-ci n'appartient pas au *working directory* ? Si oui, comment ?
4. Pensez-vous que certaines entreprise n'ont pas besoin d'utiliser d'outils de versioning ? Justifiez votre réponse en donnant quelques exemples. **La réponse "oui" est tout à fait admissible si bien justifiée.**
5. Une fois un fichier ajouté au *stage*, peut-on l'en retirer ? Si oui, comment ?
6. En deux ou trois phrase, qu'avez-vous pensez de la séance d'aujourd'hui ?
7. Avez-vous envie de travailler avec Linus Torvalds ?&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://students.corentindesfarges.fr/cnam-fip-1a/tp-les-commandes-de-base.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
