Table des matières
Git
Git est un système de versionnage de code source. Il a été développé par Linus Tarvolds.
Voir aussi :
Ressources
Installation de Git
Mac
- Télécharger Git sur le site Git for OS X.
- Procéder à l'installation
- Git devrait être dans
/usr/bin/git
ou dans/usr/local/git/bin
après l'installation. Ceci peut être vérifié en tapantwhich git
dans le Terminal.
Linux
Déjà installé sur Ubuntu 18.04 Server.
$ sudo add-apt-repository ppa:git-core/ppa -y $ sudo apt-get update $ sudo apt-get install git -y
Autres OS
Windows
Pour utiliser Git sous Powershell:
- Installer Git pour Windows
- Installer posh-git
On peut aussi configurer Git pour enlever les avertissements du CRLF (warning: CRLF will be replaced by LF
) :
$ git config --global core.safecrlf false
Config sous Windows
[user] name = Stephane Gariepy email = sgariepy@emailinexistant.ca [credential] helper = !'C:\\Users\\gariepy\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe' [core] excludesfile = C:\\Users\\gariepy\\Documents\\gitignore_global.txt [push] default = simple [http] sslVerify = false sslCAinfo = /bin/curl-ca-bundle.crt
Configurer
Migrations
Globale
Note: Utiliser les identities
Ouvrir le Terminal et taper :
$ git config --global user.name "<votre nom>" $ git config --global user.email <votre_email>
Pour enlever la configuration de l'utilisateur:
git config --global --unset user.name git config --global --unset user.email git config --global --unset user.signingkey
Pour configurer d'autres valeurs, qui ne sont pas obligatoire aux fonctionnement de Git :
$ git config --global core.editor nano $ git config --global merge.tool vimdiff
Rebase editor:
$ npm i -g rebase-editor $ git config --global sequence.editor rebase-editor
Identities
Ajouter une identité (key-pair):
$ gpg --full-gen-key
Liste des key-pairs:
$ gpg --list-secret-keys --keyid-format LONG
Export public key:
$ gpg --armor --export [keyid]
Delete key-pair:
$ gpg --delete-secret-key [keyid]
Ajout d'une identité (remplacer gitlab
par ce qui est approprié):
$ git config --global user.gitlab.name "Your Name" $ git config --global user.gitlab.email "gitlab@example.com" $ git config --global user.gitlab.signingkey 543166183AE7043A
Liste des identités de Git:
$ nano ~/.gitconfig
Source: Setting Up Git Identities
Configuration spécifique au dépôt
On peut spécifier la configuration pour un dépôt en particulier, il suffit de se rendre dans ce dépôt en ligne de commande et utiliser les mêmes paramètres de git config
sauf sans le --global
.
Le fichier de configuration est stocké dans <chemin_du_depot>/.git/config
.
Vérification
Pour vérifier la configuration :
$ git config --list
Les bases de Git
Initialiser un dépôt
Pour initialiser un dépôt (repository) :
$ git init
Premier commit
$ git add *.c $ git add README $ git commit -m 'Version initiale du projet'
Cloner un dépôt
Pour cloner un dépôt, suffit d'utiliser la commande clone
en spécifiant l'URL du dépôt. On peut aussi spécifier le répertoire où seront mis les fichiers, mais ceci est facultatif. Si le répertoire n'est pas spécifié, le dépôt sera dans un répertoire au même nom que le dépôt.
$ git clone <url> [repertoire]
Cloner un dépôt local
$ git clone /path/to/repository
Cloner un dépôt distant
$ git clone username@host:/path/to/repository
Ajouter et commiter
Pour proposer des changements (ajouter à l'index), utiliser
$ git add <filename> $ git add *
Pour effectivement commiter, il faut
$ git commit -m "Message"
C'est commit au HEAD, mais pas sur le dépôt distant.
Pousser les changements
Les changement sont effectués pour le HEAD localement, il faut donc les pousser vers le dépôt distant :
$ git push origin master
On peut changer master
pour pousser vers une branche spécifique.
Gestion des Remotes
Lister
$ git remote -v
Ajouter
Pour l'ajout d'un remote de base, par exemple pour origin
:
$ git remote add origin <origin-address>
Le nom du remote par défaut est origin
. Si on veut en ajouter un, suffit de le nommer d'un autre nom, par exemple bitbucket
, openshift
, etc.
$ git remote add <nom-du-remote> -f <url-git-remote> $ git merge <nom-du-remote>/master -s recursive -X ours $ git push <nom-du-remote> HEAD
Supprimer
$ git remote rm <nom-du-remote>
Trucs
Supprimer des fichiers existants suite à la mise en place d’un .gitignore
:
$ git rm -r --cached . $ git add . $ git commit -am "Remove ignored files"
Termes français
Anglais | Français |
---|---|
Commit | Committer (deux t) |
Pull | Tirer |
Push | Pousser |
Fetch | Récupérer |
Branch | Branche(r) |
Merge | Fusionner |
Stash | Stash |
Rebase | Rebaser |
Demande de tirage1) | Pull Request |
Source : SourceTree en français.
GitHub
Gestion des clés pour plusieurs comptes:
$ ssh-keygen -t rsa -C "your_email@youremail.com"
Par exemple, deux clés de créés:
~/.ssh/id_rsa_activehacker ~/.ssh/id_rsa_jexchan
Ajouter :
$ ssh-add ~/.ssh/id_rsa_activehacker $ ssh-add ~/.ssh/id_rsa_jexchan
Source: Multiple SSH Keys settings for different github account
Git Hooks
{ "name": "project-name", "version": "1.0.0", "dependencies": { }, "scripts": { "postinstall": ".\\hooks\\postinstall.bat" } }
[core] hooksPath=../hooks/
Raccourcis Git
Ce sont les raccourcis les plus utiles pour le plugin Git de Zsh.
Outils
Sources
- Scott Chacon, Pro Git, Apress 2009.