« Git Commandes » : différence entre les versions
Aucun résumé des modifications |
|||
| (29 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
==Log== | == '''Log''' == | ||
=== '''Voir les commits''' === | |||
< | <syntaxhighlight lang="bash" line copy> | ||
git log --oneline | git log --oneline | ||
</ | </syntaxhighlight> | ||
=== '''Voir les infos du dernier commit''' === | |||
< | <syntaxhighlight lang="bash" line copy> | ||
git log -1 HEAD | git log -1 HEAD | ||
</ | </syntaxhighlight> | ||
==Tag== | == '''Tag''' == | ||
===Création=== | Cherche le tag le plus récent dans l'historique du commit actuel. | ||
< | <syntaxhighlight lang="bash" line copy> | ||
git describe --tags | |||
</syntaxhighlight> | |||
=== '''Création''' === | |||
<syntaxhighlight lang="bash" line copy> | |||
git tag -a v2.4.2 -m "Le message du commit" | git tag -a v2.4.2 -m "Le message du commit" | ||
git push --tags | git push --tags | ||
</ | </syntaxhighlight> | ||
===Suppression=== | === '''Suppression''' === | ||
< | <syntaxhighlight lang="bash" line copy> | ||
git tag -d v2.4.1 | git tag -d v2.4.1 # retire le tag dépôt local | ||
git push origin :refs/tags/v2.4.1 | </syntaxhighlight> | ||
<syntaxhighlight lang="bash" line copy> | |||
===Voir=== | git push origin :refs/tags/v2.4.1 # retire le tag du repo distant | ||
< | </syntaxhighlight> | ||
=== '''Voir''' === | |||
<syntaxhighlight lang="bash" line copy> | |||
git show v2.4.1 | git show v2.4.1 | ||
</syntaxhighlight> | |||
</ | === '''Renommer''' === | ||
===Renommer=== | <syntaxhighlight lang="bash" line copy> | ||
< | # conversion en tag annoté avec message | ||
git tag v1.0.2 v1.0.2^{} -f -m " | 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 | git push -f origin --tags | ||
</ | </syntaxhighlight> | ||
== | === '''Renommer (Alternative moins risquée)''' === | ||
=== | <syntaxhighlight lang="bash" line copy> | ||
# 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 | |||
</syntaxhighlight> | |||
=== Informations dépôt distant === | == '''Dépot''' == | ||
< | === '''Récupère et fusionne automatiquement une branche distante dans votre branche locale actuelle''' === | ||
<syntaxhighlight lang="bash" line copy>git pull</syntaxhighlight> | |||
=== '''Récupère les dernières modifications du dépôt distant sans les fusionner''' === | |||
<syntaxhighlight lang="bash" line copy>git fetch origin</syntaxhighlight> | |||
=== '''Paramètre votre nouveau projet avec branche locale pour qu’elle suive la branche master''' === | |||
<syntaxhighlight lang="bash" line copy>git clone</syntaxhighlight> | |||
=== '''Récupère les modifications''' === | |||
<syntaxhighlight lang="bash" line copy>git push [nom-distant] [nom-de-branche]</syntaxhighlight> | |||
=== '''Informations dépôt distant''' === | |||
<syntaxhighlight lang="bash"> | |||
git remote show | git remote show | ||
git remote show [nom-distant] | git remote show [nom-distant] | ||
</ | </syntaxhighlight> | ||
=== Pour visualiser les serveurs distants === | === '''Pour visualiser les serveurs distants''' === | ||
au moins voir l’origine origin | au moins voir l’origine origin | ||
nom par défaut que Git donne au serveur à partir duquel vous avez cloné | nom par défaut que Git donne au serveur à partir duquel vous avez cloné | ||
< | <syntaxhighlight lang="bash"> | ||
git remote | git remote | ||
git remote -v | git remote -v | ||
</ | </syntaxhighlight> | ||
=== Définir l'url du dépot distant === | === '''Définir l'url du dépot distant''' === | ||
< | <syntaxhighlight lang="bash" line copy> | ||
git remote set-url origin https://github.com/lecompte/leDepot | git remote set-url origin https://github.com/lecompte/leDepot | ||
</ | </syntaxhighlight> | ||
ou pour ssh avec une key pub à ajouter | ou pour ssh avec une key pub à ajouter | ||
< | <syntaxhighlight lang="bash" line copy> | ||
git remote add origin git@github.com:lecompte/leDepot.git | git remote add origin git@github.com:lecompte/leDepot.git | ||
</ | </syntaxhighlight> | ||
=== Appliquer la branche locale en fonction de la distante === | === '''Appliquer la branche locale en fonction de la distante''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch --set-upstream-to=origin/master master</syntaxhighlight> | ||
=== Raliser le suivi d'une branche distante === | === '''Raliser le suivi d'une branche distante''' === | ||
< | <syntaxhighlight lang="bash" line copy>git push --set-upstream origin master</syntaxhighlight> | ||
--- | --- | ||
| Ligne 75 : | Ligne 99 : | ||
https://git-scm.com/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-dépôts-distants | https://git-scm.com/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-dépôts-distants | ||
== Branche == | == '''Branche''' == | ||
=== Liste des branches courantes === | === '''Liste des branches courantes''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch</syntaxhighlight> | ||
=== Liste des derniers commits sur chaque branche === | === '''Liste des derniers commits sur chaque branche''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch -v</syntaxhighlight> | ||
=== Branches qui ont déjà été fusionnées dans votre branche courante | === '''Branches qui ont déjà été fusionnées dans votre branche courante''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch --merged</syntaxhighlight> | ||
=== Branches qui contiennent des travaux qui n’ont pas encore été fusionnés === | === '''Branches qui contiennent des travaux qui n’ont pas encore été fusionnés''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch --no-merged</syntaxhighlight> | ||
=== Créer une branche === | === '''Créer une branche''' === | ||
< | <syntaxhighlight lang="bash" line copy>git branch -b une_branche</syntaxhighlight> | ||
=== Changer de branche === | === '''Changer de branche''' === | ||
< | <syntaxhighlight lang="bash" line copy>git checkout une_branche</syntaxhighlight> | ||
=== Push sur une branche particulière === | === '''Push sur une branche particulière''' === | ||
< | <syntaxhighlight lang="bash" line copy>git push --set-upstream origin une_branche</syntaxhighlight> | ||
=== Récupérer une branche qui n'existe pas en local | === '''Récupérer une branche qui n'existe pas en local''' === | ||
< | <syntaxhighlight lang="bash" line copy>git checkout -b une_branche origin/une_branche</syntaxhighlight> | ||
== | === '''Voir les modifs''' === | ||
<syntaxhighlight lang="bash" line copy>git status</syntaxhighlight> | |||
==Fenêtre graphique== | === '''Pousser les modifications''' === | ||
< | <syntaxhighlight lang="bash" line> | ||
git add . | |||
git commit =m "le message de commit" | |||
git push | |||
</syntaxhighlight> | |||
=== '''Merge''' === | |||
<syntaxhighlight lang="bash" line> | |||
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) | |||
</syntaxhighlight> | |||
== ✳️ '''Ré-init / Reset''' == | |||
=== 🔹<code>git reset --hard origin/master</code> === | |||
La commande <code>git reset --hard origin/master</code> est utilisée pour réinitialiser votre branche locale actuelle à l’état exact de la branche <code>master</code> du dépôt distant <code>origin</code>. Voici ce que fait cette commande en détail : | |||
# '''Réinitialisation Complète''' : Elle réinitialise votre branche locale pour qu’elle corresponde exactement à la branche <code>origin/master</code>. Cela signifie que tous les commits locaux qui ne sont pas présents dans <code>origin/master</code> seront supprimés. | |||
# '''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. | |||
# '''Index et Répertoire de Travail''' : L’option <code>--hard</code> 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 <code>origin/master</code>. | |||
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. | |||
<syntaxhighlight lang="bash" line copy> | |||
git reset --hard origin/master | |||
</syntaxhighlight> | |||
=== 🔹<code>git reset --hard HEAD~</code> === | |||
La commande <code>git reset --hard HEAD~</code> 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 : | |||
# '''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. | |||
# '''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. | |||
# '''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. | |||
# '''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. | |||
<syntaxhighlight lang="bash" line copy>git reset --hard HEAD~</syntaxhighlight> | |||
=== 🔹<code>git revert</code> === | |||
La commande <code>git revert</code> 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 à <code>git reset</code>, qui supprime les commits de l’historique, <code>git revert</code> conserve l’historique des commits et ajoute un nouveau commit qui annule les modifications des commits spécifiés. | |||
Voici comment fonctionne <code>git revert</code> : | |||
# '''Création d’un Nouveau Commit''' : Au lieu de supprimer un commit de l’historique, <code>git revert</code> crée un nouveau commit qui inverse les modifications du commit spécifié. Cela signifie que l’historique des commits reste intact. | |||
# '''Sécurité''' : Puisque <code>git revert</code> 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. | |||
# '''Utilisation''' : Vous pouvez spécifier un ou plusieurs commits à annuler. Par exemple, <code>git revert <commit-hash></code> annulera les modifications apportées par le commit spécifié par <code><commit-hash></code>. | |||
Exemple d’utilisation : | |||
<syntaxhighlight lang="sh">git revert a1b2c3d4</syntaxhighlight> | |||
Cette commande créera un nouveau commit qui annule les modifications introduites par le commit <code>a1b2c3d4</code>. | |||
La commande <code>git revert</code> 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é, <code>git revert</code> 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 <code>git stash</code> 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 <code>git stash</code> en détail : - Elle enregistre les modifications apportées aux fichiers suivis ainsi que les fichiers non suivis (si vous utilisez l’option <code>-u</code> ou <code>--include-untracked</code>). - Elle réinitialise votre répertoire de travail pour qu’il corresponde à la dernière version validée (<code>HEAD</code>). | |||
<syntaxhighlight lang="bash" line copy> | |||
git stash | |||
</syntaxhighlight> | |||
🔹La commande <code>git stash pop</code> est utilisée pour réappliquer les modifications les plus récemment enregistrées avec <code>git stash</code> 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 <code>git stash pop</code> 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. | |||
<syntaxhighlight lang="bash" line copy> | |||
git stash pop | |||
</syntaxhighlight> | |||
En résumé : - <code>git stash</code> : Enregistre temporairement vos modifications et réinitialise votre répertoire de travail. - <code>git stash pop</code> : Réapplique les modifications les plus récentes enregistrées avec <code>git stash</code> et supprime ce stash de la liste. | |||
* [https://git-scm.com/docs/git-stash/fr git-scm.com/docs/git-stash/fr] | |||
== '''Fenêtre graphique''' == | |||
<syntaxhighlight lang="bash" line copy> | |||
gitk | gitk | ||
</ | </syntaxhighlight> | ||
== '''git config''' == | |||
=== '''This is Git's per-user configuration file''' === | |||
<syntaxhighlight lang="ini" line> | |||
[user] | |||
name = Doo John | |||
email = jhon.doo@github.fr | |||
[core] | |||
autocrlf = true | |||
</syntaxhighlight> | |||
[[Catégorie:Git]] | [[Catégorie:Git]] | ||