Xavier Lamorlette

git

Commandes

add

Ajoute un fichier dans l'index (pour le prochain commit).

blame

Pour un fichier, ligne pas ligne, montre la révision et l'auteur.

branch

Liste les branches.

checkout

cherry-pick

git cherry-pick [sha] : applique un changeset sur la branche courante.
Cf SO : How to move certain commits to another branch in git?.

commit

Enregistre les changements.

diff

Montre les changements.

fetch

Récupère les commits du dépôt de référence.

init

Initialise un dépôt local (crée le répertoire .git).

log

Affiche l'historique.

merge

Fusionne les changements venant de la branche donnée en paramètre.

pull

Récupère les changements du dépôt de référence = git fetch && git merge.

push

Pousse les changements vers le dépôt de référence.

rebase

Fusionner plusieurs commits en un seul :

remote

Gère le dépôt de référence.

reset

Réinitialise.

rm

Supprime et oublie un fichier.

stash

Met de côté les changements locaux.

Pour les commandes prenant un paramètre d'index, s'il est omis, le plus récent changement est utilisé.

status

Donne le statut de l'index.

tag

Ajoute une étiquette.

Cas particuliers d'utilisation

Annuler tous les changements locaux

Utile notamment après avoir reçu un git push.
> git checkout -f

Déplacer les derniers commits vers une nouvelle branche

> git branch [nom de la nouvelle branche]
> git reset --hard [sha du dernier commit à garder dans la branche actuelle]
> git checkout [nom de la nouvelle branche]
Source: SO: Move the most recent commit(s) to a new branch with Git.

Fusionner tous les commits d'amendements et de corrections en un seul

> git rebase -i --autosquash [dernier commit à conserver]

Regrouper les derniers commits en un seul

> git reset --soft [sha du commit précédent ceux à regrouper]
> git commit -m "commentaire"

Authentification permanente sur le dépôt

Atlassian: Permanently authenticating with Git repositories.

Garder l'authentification en cache une heure:

> git config --global credential.helper 'cache --timeout 3600'

Récupérer localement le head d'un collègue

> git remote add -f [bernard] https://[moi]@[serveur]/[projet].git

(> git remote update)

> git diff master remotes/[bernard]/master

> git fetch [bernard] master:[bernard]
> git checkout [bernard]

> git checkout master

> git remote rm [bernard]
> git branch -D [bernard]

Références

La dernière mise à jour de cette page date d'août 2019.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.