Git¶
Installation¶
Git dans PowerShell¶
Télécharger et installer la dernière version officielle de Git sur Git - Downloads.
Un paquetage appelé Posh-Git fournit un système de complétion automatique, ainsi qu’une invite améliorée pour vous aider à rester informé de l’état de votre dépôt et s'installe comme suit :
> Install-PackageProvider -Name NuGet -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -Force
> Add-PoshGitToProfile -AllHosts
Ressources¶
Configurer Git¶
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
git config --global core.editor "vi"
git config --global pull.rebase false
Ressources¶
Configurer Visual Studio Code comme éditeur¶
Configuration spécifique à Windows¶
Lorsqu'on utilise git dans différents environnement (Windows, Linux, etc.) et pour éviter les problèmes de fin de ligne, on désactive le mécanisme de conversion automatique de fin de ligne :
Ainsi, les caractères de fin de ligne sont identiques sur le dépôt local et le dépôt distant.
Note
Il faut s'assurer néanmoins que l'éditeur de code utilise bien le caractère de fin de ligne de style UNIX (LF
et non CR+LF
).
Dans le fichier de configuration de Visual Studio Code (settings.json
), il suffit de remplacer :
par :
Note
Il est possible de forcer la prise en charge des caractères de fin de ligne pour l'ensemble des utilisateurs d'un dépôt en ajoutant un fichier .gitattributes
à la racine de celui-ci.
Ressources¶
- Configuration de Git pour traiter les fins de ligne - Documentation GitHub
- newline - How do I force Git to use LF instead of CR+LF under Windows? - Stack Overflow
Multiples configurations¶
Dans cet exemple, on souhaite surcharger certains paramètres de la configuration principale (située dans ~/.gitconfig
) lorsqu'on travaille sur des dépôts git situés dans le dossier ~/dev/github
:
Ressources¶
Configurer Git Bash¶
# .bash_aliases
alias python='winpty /c/Users/<user>/AppData/Local/Programs/Python/Python38/python.exe'
alias python3='winpty /c/Users/<user>/AppData/Local/Programs/Python/Python38/python.exe'
alias python3.8='winpty /c/Users/<user>/AppData/Local/Programs/Python/Python38/python.exe'
Configuration Git Bash dans Visual Studio Code¶
Ajouter dans settings.json
:
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash"
}
},
"terminal.integrated.defaultProfile.windows": "Git Bash",
Git en détail¶
git fetch
vs git pull
¶
git pull
== git fetch
+ git merge
sequenceDiagram
participant Remote as Remote<br>Repository
participant Local as Local<br>Repository
participant Working as Working<br>Repository
Remote ->> Working: git pull
Remote ->> Local: git fetch
Local ->> Working: git merge
Ressources¶
Commandes utiles¶
Afficher l'adresse du dépôt distant¶
Ressources¶
Consulter l'historique des actions dans git¶
Ressources¶
Remiser les modifications d’un répertoire de travail¶
Enregistre vos modifications locales et rétablit le répertoire de travail pour qu’il corresponde au commit HEAD
:
Les modifications remisées par cette commande peuvent être listées avec :
Supprimer un seul remisage de la liste des remisages et l’appliquer par dessus l’état de l’arbre de travail actuel :
Ressources¶
Récupérer les commits de la branche main
¶
Depuis une branche qui dérive de main
:
Squasher les commits¶
Squasher des commits signifie regrouper plusieurs commits en un seul.
Ressources¶
Supprimer le dernier commit¶
Réécrire l'historique¶
Ressources¶
- Git - Réécrire l’historique
- How to amend a commit without changing commit message (reusing the previous one)?
Fusionner plusieurs commit en un seul¶
Exemple, fusionner les trois derniers commits :
S'affiche alor dans l'éditeur :
On conserve pick
sur le premier commit et on remplace par squash
pour les suivants :
Autre solution en créant un tout nouveau commit from scratch :