Aller au contenu

Git Commandes

De Marmits Wiki

Log

Voir les commits

git log --oneline

Voir les infos du dernier commit

git log -1 HEAD

Tag

Cherche le tag le plus récent dans l'historique du commit actuel.

git describe --tags

Création

git tag -a v2.4.2 -m "Le message du commit"
git push --tags

Suppression

git tag -d v2.4.1 # retire le tag dépôt local
git push origin :refs/tags/v2.4.1 # retire le tag du repo distant

Voir

git show v2.4.1

Renommer

# conversion en tag annoté avec message
git tag v1.0.2 v1.0.2^{} -f -m "message détaillé"
# Efface tous les tags distants non présents localement.
# Peut écraser des tags créés par d'autres sans garde-fou.
git push -f origin --tags

Renommer (Alternative moins risquée)

# 1. Mise à jour locale du tag
git tag -fa v1.0.2 -m "Nouveau message"

# 2. Suppression du tag distant
git push origin :v1.0.2

# 3. Push du nouveau tag
git push origin v1.0.2

Dépot

Récupère et fusionne automatiquement une branche distante dans votre branche locale actuelle

git pull

Récupère les dernières modifications du dépôt distant sans les fusionner

git fetch origin

Paramètre votre nouveau projet avec branche locale pour qu’elle suive la branche master

git clone

Récupère les modifications

git push [nom-distant] [nom-de-branche]

Informations dépôt distant

git remote show 
git remote show [nom-distant]

Pour visualiser les serveurs distants

au moins voir l’origine origin nom par défaut que Git donne au serveur à partir duquel vous avez cloné

git remote 
git remote -v

Définir l'url du dépot distant

git remote set-url origin https://github.com/lecompte/leDepot

ou pour ssh avec une key pub à ajouter

git remote add origin git@github.com:lecompte/leDepot.git

Appliquer la branche locale en fonction de la distante

git branch --set-upstream-to=origin/master master

Raliser le suivi d'une branche distante

git push --set-upstream origin master

--- source: https://git-scm.com/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-dépôts-distants

Branche

Liste des branches courantes

git branch

Liste des derniers commits sur chaque branche

git branch -v

Branches qui ont déjà été fusionnées dans votre branche courante

git branch --merged

Branches qui contiennent des travaux qui n’ont pas encore été fusionnés

git branch --no-merged

Créer une branche

git branch -b une_branche

Changer de branche

git checkout une_branche

Push sur une branche particulière

git push --set-upstream origin une_branche

Récupérer une branche qui n'existe pas en local

git checkout -b une_branche origin/une_branche

Voir les modifs

git status

Pousser les modifications

git add .
git commit =m "le message de commit"
git push

Merge

git checkout testing (pour changer de branche sur testing qui devient la courante)
git merge master ( permet d'avancer la branche courante en incorporant le travail d'une autre branche : celle de master)
git push (transférer les commits du dépôt local vers un dépôt distant)

✳️ Ré-init / Reset

🔹git reset --hard origin/master

La commande git reset --hard origin/master est utilisée pour réinitialiser votre branche locale actuelle à l’état exact de la branche master du dépôt distant origin. Voici ce que fait cette commande en détail :

  1. Réinitialisation Complète : Elle réinitialise votre branche locale pour qu’elle corresponde exactement à la branche origin/master. Cela signifie que tous les commits locaux qui ne sont pas présents dans origin/master seront supprimés.
  2. Modifications Locales : Toutes les modifications locales non validées dans votre répertoire de travail seront perdues. Cela inclut les modifications apportées aux fichiers suivis ainsi que les nouveaux fichiers non suivis.
  3. Index et Répertoire de Travail : L’option --hard indique à Git de réinitialiser à la fois l’index (la zone de préparation) et le répertoire de travail. Cela signifie que tout sera réinitialisé à l’état de origin/master.

Cette commande est souvent utilisée dans les situations suivantes :

  • Synchronisation avec le Dépôt Distant : Si vous souhaitez vous assurer que votre branche locale est exactement la même que la branche distante, par exemple après avoir rencontré des conflits ou des problèmes de synchronisation.
  • Nettoyage de l’Environnement Local : Si vous avez fait des modifications locales ou des commits expérimentaux et que vous souhaitez tout simplement repartir de l’état du dépôt distant.

Il est crucial d’utiliser cette commande avec prudence, car elle supprime définitivement toutes les modifications locales non sauvegardées. Assurez-vous de ne pas avoir besoin de ces modifications avant d’exécuter cette commande.

git reset --hard origin/master

🔹git reset --hard HEAD~

La commande git reset --hard HEAD~ est utilisée dans des cas spécifiques où vous souhaitez supprimer définitivement le dernier commit de votre branche actuelle et toutes les modifications associées dans votre répertoire de travail. Voici quelques scénarios où cette commande pourrait être utile :

  1. Annuler un Commit Erroné : Si vous avez fait un commit qui contient des erreurs ou des modifications indésirables et que vous souhaitez complètement l’annuler, cette commande vous permet de revenir à l’état précédent.
  2. Nettoyer l’Historique Local : Si vous travaillez localement et que vous avez fait des commits expérimentaux ou temporaires que vous ne souhaitez pas conserver, vous pouvez utiliser cette commande pour nettoyer votre historique.
  3. Réinitialiser à un État Connu : Si vous avez fait des modifications qui ont introduit des bugs et que vous souhaitez revenir à un état stable connu, cette commande peut être utilisée pour réinitialiser votre répertoire de travail.
  4. Supprimer des Modifications Non Validées : En plus de supprimer le dernier commit, cette commande supprime également toutes les modifications non validées dans votre répertoire de travail, ce qui peut être utile si vous souhaitez tout simplement repartir de zéro.

Cependant, il est important de noter que cette commande doit être utilisée avec prudence car elle supprime définitivement les modifications. Assurez-vous de ne pas avoir besoin des modifications que vous allez supprimer, car elles ne pourront pas être récupérées facilement. Si vous travaillez avec d’autres personnes ou sur un dépôt partagé, assurez-vous également de ne pas réinitialiser des modifications qui ont déjà été partagées avec d’autres.

git reset --hard HEAD~

🔹git revert

La commande git revert est utilisée pour annuler les modifications apportées par un ou plusieurs commits précédents en créant un nouveau commit qui inverse les changements. Contrairement à git reset, qui supprime les commits de l’historique, git revert conserve l’historique des commits et ajoute un nouveau commit qui annule les modifications des commits spécifiés.

Voici comment fonctionne git revert :

  1. Création d’un Nouveau Commit : Au lieu de supprimer un commit de l’historique, git revert crée un nouveau commit qui inverse les modifications du commit spécifié. Cela signifie que l’historique des commits reste intact.
  2. Sécurité : Puisque git revert ne réécrit pas l’historique, il est sûr d’utiliser cette commande sur des commits qui ont déjà été poussés vers un dépôt partagé. Cela évite les problèmes potentiels qui peuvent survenir lorsque l’historique est modifié après avoir été partagé avec d’autres.
  3. Utilisation : Vous pouvez spécifier un ou plusieurs commits à annuler. Par exemple, git revert <commit-hash> annulera les modifications apportées par le commit spécifié par <commit-hash>.

Exemple d’utilisation :

git revert a1b2c3d4

Cette commande créera un nouveau commit qui annule les modifications introduites par le commit a1b2c3d4.

La commande git revert est particulièrement utile dans les scénarios suivants : - Vous souhaitez annuler les modifications d’un commit spécifique sans altérer l’historique des commits. - Vous travaillez dans un dépôt partagé et vous voulez éviter les conflits potentiels en réécrivant l’historique.

En résumé, git revert est une manière sûre et non destructive d’annuler des modifications dans un dépôt Git, surtout lorsque vous travaillez avec d’autres personnes sur un dépôt partagé.

✳️ Stash

🔹La commande git stash est utilisée pour enregistrer temporairement les modifications que vous avez faites dans votre répertoire de travail, sans les valider dans l’historique Git. Cela vous permet de revenir à un état de travail propre, par exemple pour changer de branche ou travailler sur autre chose, sans avoir à valider des modifications incomplètes ou non désirées.

Voici ce que fait git stash en détail : - Elle enregistre les modifications apportées aux fichiers suivis ainsi que les fichiers non suivis (si vous utilisez l’option -u ou --include-untracked). - Elle réinitialise votre répertoire de travail pour qu’il corresponde à la dernière version validée (HEAD).

git stash

🔹La commande git stash pop est utilisée pour réappliquer les modifications les plus récemment enregistrées avec git stash et les supprimer de la liste des stashes. En d’autres termes, elle restaure les modifications que vous aviez mises de côté et supprime ce stash de la pile.

Voici ce que fait git stash pop en détail : - Elle réapplique les modifications du stash le plus récent à votre répertoire de travail. - Elle supprime ce stash de la liste des stashes enregistrés.

git stash pop

En résumé : - git stash : Enregistre temporairement vos modifications et réinitialise votre répertoire de travail. - git stash pop : Réapplique les modifications les plus récentes enregistrées avec git stash et supprime ce stash de la liste.

Fenêtre graphique

gitk

git config

This is Git's per-user configuration file

[user]
	name = Doo John
	email = jhon.doo@github.fr
[core]
	autocrlf = true