Installation et configuration initiale de Git
Sur un système basé sur Debian comme Ubuntu, l'installation de Git se fait via le gestionnaire de paquets :
sudo apt update && sudo apt install git -y
Une fois installé, il est crucial de définir votre identité. Ces informations seront associées à chaque commit :
git config --global user.name "dev_pseudonyme"
git config --global user.email "developer@example.com"
Initialisation d'un projet local
Créez un répertoire pour votre projet et initialisez-le en tant que dépôt Git :
mkdir -p ~/workspace/algorithm_study
cd ~/workspace/algorithm_study
git init
Authentification SSH pour les dépôts distants
L'utilisation de SSH est recommandée pour éviter de saisir vos identifiants à chaque opération. Assurez-vous d'avoir le client OpenSSH installé :
sudo apt install openssh-client
Génération de la paire de clés
Générez une nouvelle clé SSH avec l'algorithme Ed25519 (plus moderne et sécurisé que RSA) :
ssh-keygen -t ed25519 -C "developer@example.com" -f ~/.ssh/id_ed25519_git -N ""
Cela crée une clé privée (id_ed25519_git) et une clé publique (id_ed25519_git.pub) sans phrase de passe.
Intégration avec GitHub
- Affichez le contenu de votre clé publique :
cat ~/.ssh/id_ed25519_git.pub - Copiez la sortie.
- Sur GitHub, allez dans Settings > SSH and GPG keys > New SSH key et collez le contenu.
- Testez la connexion : ```
ssh -T git@github.com
Un message de succès confirmera l'authentification.
Ajout du dépôt distant GitHub
Liez votre dépôt local à votre repository GitHub :
git remote add upstream git@github.com:dev_pseudonyme/algorithm_study.git
Intégration avec Gitee
Vous pouvez utiliser la même clé publique sur Gitee. Après l'avoir ajoutée dans les paramètres SSH de Gitee, testez la connexion :
ssh -T git@gitee.com
Ajoutez ensuite Gitee comme second dépôt distant :
git remote add mirror git@gitee.com:dev_pseudonyme/algorithm_study.git
Vérifiez la configuration de vos dépôts distants :
git remote -v
Si vous avez configuré origin par erreur et souhaitez le renommer, utilisez git remote rename origin upstream.
Workflow standard : Clonage, modification et synchronisation
Pour travailler sur un projet existant, clonez-le et gérez vos modifications :
# Cloner le dépôt
git clone git@github.com:dev_pseudonyme/web_app.git
cd web_app
# Vérifier les branches distantes
git branch -r
# Créer et basculer sur une nouvelle branche
git switch -c feature/new-ui
# Créer un fichier et vérifier le statut
touch components/header.js
git status
# Ajouter et valider les modifications
git add components/header.js
git commit -m "feat: add header component structure"
# Pousser la branche vers le dépôt distant
git push -u upstream feature/new-ui
Manipulation de l'historique des commits
Modifier le dernier message de commit
Si vous avez fait une faute de frappe dans votre dernier message avant de le pousser :
git commit --amend -m "fix: correct typo in header component"
Annuler le dernier commit tout en conservant les modifications
Pour retirer le dernier commmit de l'historique local mais garder les fichiers dans la zone de travail (staging area) :
git reset --soft HEAD~1
Requêtes avancées sur l'histoirque
Pour lister tous les fichiers modifiés par un contributeur spécifique entre deux commits donnés, vous pouvez combiner git log avec des outils en ligne de commande :
git log --author="Alice" --name-only --pretty=format: commit_hash_1..commit_hash_2 | grep -v '^$' | sort | uniq
Outils graphiques (GUI)
Bien que la ligne de commande soit puissante, l'utilisasion de clients graphiques comme GitKraken, Sourcetree, ou SmartGit peut grandement faciliter la visualisation de l'historique, la gestion des conflits de fusion et les opérations de rebasage. Téléchargez-les depuis leurs sites officiels respectifs pour une intégration sécurisée et optimale dans votre environnement de développement.