Introduction à GitHub
Découvrez GitHub, créez votre compte, et apprenez à utiliser cette plateforme pour héberger vos projets.
Introduction à GitHub
GitHub est la plateforme de développement collaboratif la plus populaire au monde. Construite autour de Git, elle offre des outils puissants pour héberger, partager et collaborer sur des projets de code. Ce tutoriel vous guidera dans vos premiers pas sur GitHub.
Qu’est-ce que GitHub ?
GitHub est une plateforme web qui utilise Git pour le contrôle de version et ajoute des fonctionnalités collaboratives :
- Hébergement de dépôts : Stockage cloud de vos projets Git
- Interface web : Gestion visuelle de vos dépôts
- Collaboration : Outils pour travailler en équipe
- Intégration continue : GitHub Actions pour l’automatisation
- Gestion de projets : Issues, milestones, projets
- Documentation : Wiki, README, GitHub Pages
GitHub vs Git
Aspect | Git | GitHub |
---|---|---|
Type | Outil de contrôle de version | Plateforme web |
Installation | Local sur votre machine | Service cloud |
Interface | Ligne de commande | Interface web + CLI |
Collaboration | Basique | Avancée (PR, Issues, etc.) |
Hébergement | Local | Cloud |
Coût | Gratuit | Gratuit + plans payants |
Création d’un compte GitHub
Étapes d’inscription
- Visitez GitHub.com
- Cliquez sur “Sign up”
- Remplissez le formulaire :
- Username (nom d’utilisateur unique)
- Mot de passe
- Vérifiez votre email
- Choisissez votre plan (Free pour commencer)
Configuration du profil
# Éléments importants du profil
- Photo de profil professionnelle
- Bio descriptive
- Localisation
- Site web/portfolio
- Liens vers réseaux sociaux
Interface GitHub
Page d’accueil
- Dashboard : Activité de vos dépôts et organisations
- Repositories : Liste de vos dépôts
- Notifications : Activité sur vos projets
- Explore : Découvrir de nouveaux projets
Page de dépôt
username/repository-name
├── Code (fichiers et dossiers)
├── Issues (problèmes et demandes)
├── Pull requests (propositions de modifications)
├── Actions (CI/CD)
├── Projects (gestion de projet)
├── Wiki (documentation)
├── Security (sécurité)
├── Insights (statistiques)
└── Settings (paramètres)
Création de votre premier dépôt
Méthode 1 : Créer sur GitHub puis cloner
# 1. Créer le dépôt sur GitHub.com
# 2. Cloner localement
git clone https://github.com/username/mon-projet.git
cd mon-projet
# 3. Ajouter du contenu
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"
git push origin main
Méthode 2 : Créer localement puis pousser
# 1. Créer le projet localement
mkdir mon-projet
cd mon-projet
git init
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"
# 2. Ajouter le remote GitHub
git remote add origin https://github.com/username/mon-projet.git
git branch -M main
git push -u origin main
Commandes Git avec GitHub
Configuration des remotes
# Voir les remotes configurés
git remote -v
# Ajouter un remote
git remote add origin https://github.com/username/repo.git
# Modifier l'URL d'un remote
git remote set-url origin https://github.com/username/nouveau-repo.git
# Supprimer un remote
git remote remove origin
Push et Pull
# Pousser vers GitHub
git push origin main
# Pousser une nouvelle branche
git push -u origin feature/nouvelle-fonctionnalite
# Récupérer les modifications
git pull origin main
# Récupérer sans fusionner
git fetch origin
Types de dépôts
Dépôts publics
- Visibles par tous
- Gratuits sur GitHub
- Idéaux pour l’open source
- Contribuent à votre profil
Dépôts privés
- Visibles seulement par vous et vos collaborateurs
- Gratuits avec limitations
- Parfaits pour les projets commerciaux
- Contrôle d’accès granulaire
Fichiers spéciaux GitHub
README.md
Le fichier README est affiché sur la page d’accueil du dépôt :
# Nom du Projet
Description courte du projet.
## Installation
```bash
npm install
Utilisation
npm start
Contribution
Les contributions sont les bienvenues ! Voir CONTRIBUTING.md.
Licence
Ce projet est sous licence MIT - voir LICENSE pour plus de détails.
### .gitignore
GitHub propose des templates .gitignore pour différents langages :
```bash
# Node.js
node_modules/
npm-debug.log*
.env
# Python
__pycache__/
*.pyc
.venv/
# Java
*.class
target/
LICENSE
Choisir une licence appropriée :
- MIT : Très permissive
- Apache 2.0 : Permissive avec protection des brevets
- GPL v3 : Copyleft fort
- BSD : Permissive simple
GitHub CLI
L’outil en ligne de commande officiel de GitHub :
Installation
# Windows (avec Chocolatey)
choco install gh
# macOS (avec Homebrew)
brew install gh
# Linux (Ubuntu/Debian)
sudo apt install gh
Authentification
# Se connecter à GitHub
gh auth login
# Vérifier l'authentification
gh auth status
Commandes utiles
# Créer un dépôt
gh repo create mon-projet --public
# Cloner un dépôt
gh repo clone username/repository
# Voir les issues
gh issue list
# Créer une issue
gh issue create --title "Bug trouvé" --body "Description du bug"
# Voir les pull requests
gh pr list
# Créer une pull request
gh pr create --title "Nouvelle fonctionnalité" --body "Description"
Gestion des accès
Collaborateurs
# Ajouter un collaborateur (via l'interface web)
Settings > Manage access > Invite a collaborator
Équipes et organisations
- Organisations : Regrouper plusieurs dépôts
- Équipes : Gérer les permissions par groupe
- Rôles : Owner, Member, Outside collaborator
Sécurité sur GitHub
Authentification à deux facteurs (2FA)
- Settings > Password and authentication
- Enable two-factor authentication
- Utiliser une app (Google Authenticator, Authy)
- Sauvegarder les codes de récupération
Clés SSH
Configuration pour éviter de taper le mot de passe :
# Générer une clé SSH
ssh-keygen -t ed25519 -C "votre.email@example.com"
# Ajouter la clé à l'agent SSH
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Copier la clé publique
cat ~/.ssh/id_ed25519.pub
# Ajouter sur GitHub : Settings > SSH and GPG keys
Personal Access Tokens
Pour l’authentification via HTTPS :
# Générer un token : Settings > Developer settings > Personal access tokens
# Utiliser le token comme mot de passe
git clone https://github.com/username/repo.git
# Username: votre-username
# Password: votre-token
GitHub Pages
Héberger des sites web statiques gratuitement :
Activation
- Settings > Pages
- Choisir la source (branche main, docs/, etc.)
- Votre site sera disponible à :
https://username.github.io/repository
Exemple de site simple
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Mon Site GitHub Pages</title>
</head>
<body>
<h1>Bienvenue sur mon site !</h1>
<p>Hébergé gratuitement sur GitHub Pages.</p>
</body>
</html>
Exercices pratiques
Exercice 1 : Premier dépôt
# 1. Créer un dépôt sur GitHub.com nommé "hello-github"
# 2. Cloner localement
git clone https://github.com/VOTRE-USERNAME/hello-github.git
cd hello-github
# 3. Créer un README
echo "# Hello GitHub" > README.md
echo "Mon premier projet sur GitHub !" >> README.md
# 4. Ajouter et pousser
git add README.md
git commit -m "Add README"
git push origin main
Exercice 2 : Projet avec structure
# 1. Créer la structure
mkdir src docs tests
echo "console.log('Hello World!');" > src/app.js
echo "# Documentation" > docs/README.md
echo "// Tests à venir" > tests/app.test.js
# 2. Créer un .gitignore
echo "node_modules/" > .gitignore
echo "*.log" >> .gitignore
# 3. Ajouter tout et pousser
git add .
git commit -m "Initial project structure"
git push origin main
Exercice 3 : GitHub Pages
# 1. Créer un site simple
echo "<!DOCTYPE html>
<html>
<head><title>Mon Site</title></head>
<body><h1>Hello GitHub Pages!</h1></body>
</html>" > index.html
# 2. Pousser
git add index.html
git commit -m "Add GitHub Pages site"
git push origin main
# 3. Activer GitHub Pages dans Settings
# 4. Visiter https://VOTRE-USERNAME.github.io/VOTRE-REPO
Découverte de projets
Recherche avancée
# Syntaxe de recherche GitHub
language:javascript stars:>1000
user:microsoft language:typescript
org:facebook created:>2020-01-01
Trending
- Explore > Trending : Projets populaires
- Filtrer par langage et période
- Découvrir de nouvelles technologies
Topics et tags
- Organiser les dépôts par sujet
- Faciliter la découverte
- Exemples :
web-development
,machine-learning
,api
Bonnes pratiques
README efficace
- Titre clair et description
- Instructions d’installation
- Exemples d’utilisation
- Contribution guidelines
- Licence et contact
Commits et messages
# Messages clairs et descriptifs
git commit -m "feat: add user authentication"
git commit -m "fix: resolve login bug on mobile"
git commit -m "docs: update API documentation"
Organisation des dépôts
- Un dépôt par projet
- Noms descriptifs
- Tags pour les versions
- Branches organisées
Intégrations populaires
Services tiers
- Travis CI : Intégration continue
- Codecov : Couverture de code
- Dependabot : Mise à jour des dépendances
- Slack/Discord : Notifications
GitHub Apps
- GitHub Desktop : Interface graphique
- VS Code : Extension GitHub
- Mobile apps : GitHub pour iOS/Android
Dépannage courant
Problèmes d’authentification
# Vérifier la configuration
git config --list | grep user
# Tester la connexion SSH
ssh -T git@github.com
# Réinitialiser les credentials
git config --global --unset user.name
git config --global --unset user.email
Erreurs de push
# Erreur : Updates were rejected
git pull origin main
git push origin main
# Forcer le push (ATTENTION)
git push --force-with-lease origin main
Ressources supplémentaires
Documentation officielle
Communauté
Conclusion
GitHub transforme Git en une plateforme collaborative puissante. Maîtriser GitHub vous ouvre les portes de la collaboration moderne et de l’open source. C’est un outil essentiel pour tout développeur.
Dans le prochain tutoriel, nous approfondirons la collaboration sur GitHub avec les pull requests, issues et autres outils collaboratifs.
Temps de lecture estimé : 20 minutes
Niveau : Débutant
Étape précédente : Branches et fusion
Prochaine étape : Collaboration avec GitHub