Git recipes

Rien de bien folichon, mais un petit article pour se souvenir de quelques commandes Git, bien utile.

Avoir l'aide Git
> git --help

Avoir la version de Git
> git --version

Initialiser Git
> git config --global user.name "julien roche"
> git config --global user.email "roche.jul@gmail.com"


Configurer Git par rapport au proxy
> git config --global http.sslVerify false
> git config --global https.sslVerify false
> git config --global http.proxy http://proxy.company.com:8080
> git config --global https.proxy http://proxy.company.com:8080
> git config --global url."https://".insteadOf git://


Vérifier si un répertoire est versionné sous Git
Si ce n'est pas le cas, une erreur sera remontée

> git status --porcelain

Initialiser un projet Git
> git init



Cloner un projet Git
> git clone git@gitlab.com:roche.jul/test.git

Lister les remote origin
> git remote
Renommer une remote origin
> git remote rename origin old-origin
Ajouter une remote origin
> git remote add origin git@gitlab.com:roche.jul/test.git
Supprimer une remote origin
> git remote remove origin

Rafraîchir un projet (en prenant en compte les modifications en remote)
> git fetch origin

Ajouter une branche locale
> git branch myBranchName
Changer une branche locale
> git checkout myBranchName

Changer et ajouter une branche locale
> git checkout -b myBranchName
Renommer une branche locale
> git branch --move oldName newName
Connaître la branche locale de travail
> git rev-parse --abbrev-ref HEAD
Pousser la branche en remote
> git push --set-upstream origin myBranchName
Merger une branche
> git merge myBranchName
Merger une branche  avec un commit de merge
> git merge --no--ff myBranchName

Rebase intéractive d'une branche
> git rebase --preserve-merges --keep-empty --ignore-whitespace myBranchName
Annuler un merge (en cas de conflit)
> git merge --abort

Lister les branches en remote
> git branch -rvv

Lister le status des fichiers (modifiées, supprimés, ajoutés)

> git status



Ajouter un fichier dans le gestionnaire Git

> git add index.html
Ajouter tous les fichiers prêts à être envoyer
> git add .

Ajouter tous les fichiers d'un répetoire (en forçant l'ajout si nécessaire)
> git add -A -f dist/*
Mettre à jour les changements sur les fichiers
> git add -u
Renommer un fichier
> git mv old-name.html new-name.html
Déplacer un fichier
> git mv index.html app/index.html

Supprimer un fichier
> git rm index.html

Supprimer un fichier et ne plus le versionner
> git rm --cached index.html

Supprimer les fichiers non versionnés
> git clean -f
Annuler les modifications d'un fichier
> git checkout -- index.html

Remplacemer un fichier depuis un commit spécifique
> git checkout 6eb715d -- index.html


Mettre de côté ses modifications
> git stash save "My Message"

Lister les modifications
> git stash list
Réappliquer ses modifications
> git stash apply statsh@{0}

Réappliquer ses modifications et l'oublier
> git stash drop statsh@{0}

Créer un tag
> git tag v1.2.0
Créer un tag, sur une origine spécifique
> git tag origin v1.2.0
Récupérer les commits
> git pull

Récupérer les commits en mode rebase
> git pull --rebase
Récupérer les commits d'une branche spécifique
> git pull origin branchName

Récupérer les commits d'une branche spécifique en mode rebase
> git pull origin branchName --rebase

Créer un commit de tous les fichiers modifiés / supprimés  /ajoutés
> git commit --all --message "My message"
Créer un commit de tous les fichiers modifiés / supprimés  /ajoutés, en l'ajoutant au commit précédent
> git commit --all --amend

Récupérer un commit et ajouter à la branche courante
> git cherry-pick 056633e7
Créer un commit de tous les fichiers modifiés / supprimés  /ajoutés, en l'ajoutant au commit précédent et en modifiant son libélle
> git commit --all --amend --message "My new message"


Pousser les commits en remote
> git push
Forcer la réécriture de l'historique Git
> git push origin myBranchName --force
Pousser les commits en remote, sur une origine spécifique
> git push --set-upstream origin
Pousser les tags en remote
> git push --tags
Pousser les tags en remote, sur une origine spécifique
> git push --tags --set-upstream origin

Commentaires

Posts les plus consultés de ce blog

ISO: liens & outils utiles

NodeJs et SSL: une petite analyse

Créer sa commande slack en quelques minutes