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

  1. Télécharger Git sur le site Git for OS X.
  2. Procéder à l'installation
    1. Git devrait être dans /usr/bin/git ou dans /usr/local/git/bin après l'installation. Ceci peut être vérifié en tapant which 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:

  1. Installer Git pour Windows
  2. 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

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

1)
Traduction de TFS