`.gitignore`, sécurité et GitHub
Le fichier `.gitignore`
C'est un fichier texte, à la racine du dépôt, qui liste ce que Git doit ignorer : ne jamais le proposer, ne jamais le mettre dans une photo. Exemple :
.venv/
__pycache__/
*.pyc
data/raw/
.env
| Ligne | Ce qu'elle ignore | Pourquoi |
|---|---|---|
.venv/ |
le dossier .venv et tout son contenu |
l'environnement Python : gros, et il se recrée en une commande |
__pycache__/ |
les caches de Python | fabriqués automatiquement |
*.pyc |
tous les fichiers qui finissent par .pyc |
voir ci-dessous |
data/raw/ |
les données brutes | trop lourdes pour GitHub |
.env |
le fichier des secrets | voir l'étape suivante |
Un / à la fin d'une ligne désigne un dossier.
Ta première règle de sécurité
On range les clés dans un fichier .env, ignoré par Git.
Pourquoi c'est grave :
- des robots parcourent GitHub en permanence pour voler les clés. Une clé publiée est utilisée en quelques minutes ;
- supprimer le fichier ensuite ne suffit pas : il reste dans l'historique, dans les anciens commits, que tout le monde peut consulter ;
- une clé publiée par erreur doit être considérée comme volée : il faut aller la désactiver et en créer une nouvelle.
Pratique : Protège un secret
On simule un projet avec une clé secrète. Rappel : echo "texte" > fichier crée un fichier avec ce contenu.
Un terminal simulé t'attend dans l'appli, sans rien installer. Pratiquer
Envoyer sur GitHub : `push` et `pull`
Pour l'instant, ton dépôt n'existe que sur ton ordinateur.
La copie de ton dépôt sur GitHub s'appelle le dépôt distant. Par convention, on lui donne le nom origin (« origine »).
| Commande | Effet |
|---|---|
git remote add origin <adresse> |
dit à Git où se trouve le dépôt distant. Une seule fois par projet. |
git push -u origin main |
le premier envoi : envoie la branche main vers origin. Le -u mémorise ce lien. |
git push |
les envois suivants : envoie tes nouveaux commits vers GitHub |
git pull |
récupère depuis GitHub les commits que tu n'as pas (faits sur un autre PC par exemple) |
Push veut dire « pousser » et pull « tirer » : tu pousses tes commits vers GitHub, tu tires ceux de GitHub vers toi.
Seuls les commits voyagent. Un fichier modifié mais pas commité ne part pas avec git push. L'ordre est toujours : add, puis commit, puis push.
Pratique : Publie (en simulation)
Ici l'envoi est simulé. À l'étape suivante, tu le feras pour de vrai sur ton PC.
Un terminal simulé t'attend dans l'appli, sans rien installer. Pratiquer
Maintenant, pour de vrai sur ton PC
Ton nom, ton e-mail et ta clé SSH sont déjà configurés sur ton PC.
Une clé SSH est une paire de fichiers qui permet à GitHub de te reconnaître sans mot de passe : une partie privée reste sur ton PC (secrète, ne jamais la partager), une partie publique est donnée à GitHub. C'est le même principe qu'un cadenas dont toi seul as la clé.
Ouvre un vrai terminal (Ctrl + Alt + T) :
- Va dans ton dossier et regarde l'état :
cd ~/Documents/ml-parcours git status - Enregistre ce qui est en attente :
git add . git commit -m "Réécrit les leçons pour débutant" - Sur github.com, connecte-toi, clique sur + en haut à droite, puis New repository. Nom :
ml-parcours. Ne coche pas « Add a README ». Clique sur Create repository. - Dans le terminal :
git remote add origin git@github.com:oriol42/ml-parcours.git git push -u origin main - Recharge la page GitHub : tes fichiers y sont.
Si git push affiche Permission denied (publickey), ta clé SSH n'est pas reliée à ton compte GitHub : envoie-moi ce message et on règle ça ensemble.
git status, git add ., git status, git commit -m "...", git push.