Comment utiliser Git: Un guide de référence

Git Cheat Sheet

introduction

Des équipes de développeurs et des responsables de logiciels à source ouverte gèrent généralement leurs projets via Git, un système de contrôle de version distribué prenant en charge la collaboration.

Ce guide de style aide-mémoire fournit une référence rapide aux commandes utiles pour travailler et collaborer dans un référentiel Git. Pour installer et configurer Git, veillez à lire «https://www.digitalocean.com/community/tutorials/how-to-contribute-to-open-source-getting-started-with-git[How To Contribute to Open Source: Premiers pas avec Git]. "

Comment utiliser ce guide:

  • Ce guide est au format feuille de triche avec des extraits de ligne de commande autonomes.

  • Accédez à toute section pertinente à la tâche que vous tentez de terminer.

  • Lorsque vous voyezhighlighted text dans les commandes de ce guide, gardez à l’esprit que ce texte doit faire référence aux validations et aux fichiers du référentiel deyour own.

Configuration et initialisation

Vérifiez votre version de Git avec la commande suivante, qui confirmera également que Git est installé.

git --version

Vous pouvez initialiser votre répertoire de travail actuel en tant que référentiel Git avecinit.

git init

Pour copier un dépôt Git existant hébergé à distance, vous utiliserezgit clone avec l'URL ou l'emplacement du serveur du dépôt (dans ce dernier cas, vous utiliserezssh).

git clone https://www.github.com/username/repo-name

Affichez le référentiel distant de votre répertoire Git actuel.

git remote

Pour une sortie plus détaillée, utilisez l'indicateur-v.

git remote -v

Ajoutez le Git en amont, qui peut être une URL ou peut être hébergé sur un serveur (dans ce dernier cas, connectez-vous avecssh).

git remote add upstream https://www.github.com/username/repo-name

Mise en scène

Lorsque vous avez modifié un fichier et que vous l'avez marqué pour votre prochaine validation, il est considéré comme un fichier intermédiaire.

Vérifiez le statut de votre référentiel Git, y compris les fichiers ajoutés qui ne sont pas gérés et les fichiers qui sont gérés.

git status

Pour préparer les fichiers modifiés, utilisez la commandeadd, que vous pouvez exécuter plusieurs fois avant une validation. Si vous apportez les modifications suivantes que vous souhaitez inclure dans la prochaine validation, vous devez réexécuteradd.

Vous pouvez spécifier le fichier spécifique avecadd.

git add my_script.py

Avec., vous pouvez ajouter tous les fichiers dans le répertoire courant, y compris les fichiers commençant par..

git add .

Vous pouvez supprimer un fichier de la mise en attente tout en conservant les modifications dans votre répertoire de travail avecreset.

git reset my_script.py

S'engager

Une fois que vous avez mis en forme vos mises à jour, vous êtes prêt à les valider, ce qui enregistrera les modifications que vous avez apportées au référentiel.

Pour valider des fichiers intermédiaires, vous exécuterez la commandecommit avec votre message de validation significatif afin de pouvoir suivre les validations.

git commit -m "Commit message"

Vous pouvez condenser la sauvegarde de tous les fichiers suivis en les validant en une seule étape.

git commit -am "Commit message"

Si vous avez besoin de modifier votre message de validation, vous pouvez le faire avec l'indicateur--amend.

git commit --amend -m "New commit message"

Branches

Une branche dans Git est un pointeur mobile sur l'un des commits du référentiel. Elle vous permet d'isoler le travail et de gérer le développement et les intégrations de fonctionnalités. Vous pouvez en savoir plus sur les branches en lisant lesGit documentation.

Répertoriez toutes les branches actuelles avec la commandebranch. Un astérisque (*) apparaîtra à côté de votre branche actuellement active.

git branch

Créer une nouvelle branche. Vous resterez sur votre branche active jusqu'à ce que vous passiez à la nouvelle.

git branch new-branch

Basculez vers une branche existante et extrayez-la dans votre répertoire de travail actuel.

git checkout another-branch

Vous pouvez consolider la création et l'extraction d'une nouvelle branche en utilisant l'indicateur-b.

git checkout -b new-branch

Renommez le nom de votre branche.

git branch -m current-branch-name new-branch-name

Fusionnez l’historique de la branche spécifiée avec celui dans lequel vous travaillez actuellement.

git merge branch-name

Abandonnez la fusion en cas de conflit.

git merge --abort

Vous pouvez également sélectionner un commit particulier à fusionner aveccherry-pick avec la chaîne qui fait référence au commit spécifique.

git cherry-pick f7649d0

Lorsque vous avez fusionné une branche et que vous n'en avez plus besoin, vous pouvez la supprimer.

git branch -d branch-name

Si vous n'avez pas fusionné une branche vers le maître, mais êtes sûr de vouloir la supprimer, vous pouvezforce supprimer une branche.

git branch -D branch-name

Collaborer et mettre à jour

Pour télécharger les modifications à partir d'un autre référentiel, tel que l'amont distant, vous utiliserezfetch.

git fetch upstream

Fusionner les commits récupérés.

git merge upstream/master

Poussez ou transmettez vos commits de branche locale à la branche de référentiel distant.

git push origin master

Récupérer et fusionner les validations de la branche distante de suivi.

git pull

Inspection

Affiche l'historique de validation de la branche actuellement active.

git log

Affiche les commits qui ont changé un fichier particulier. Cela suit le fichier indépendamment du renommage du fichier.

git log --follow my_script.py

Affiche les commits qui se trouvent sur une branche et non sur l’autre. Cela affichera les commits sura-branch qui ne sont pas surb-branch.

git log a-branch..b-branch

Regardez les journaux de référence (reflog) pour voir quand les bouts de branches et autres références ont été mis à jour pour la dernière fois dans le référentiel.

git reflog

Affichez n'importe quel objet dans Git via sa chaîne de validation ou son hachage dans un format plus lisible par l'homme.

git show de754f5

Afficher les modifications

La commandegit diff affiche les changements entre les commits, les branches, etc. Vous pouvez en savoir plus à ce sujet grâce auxGit documentation.

Comparez les fichiers modifiés qui se trouvent dans la zone de transfert.

git diff --staged

Affiche la différence de ce qui est ena-branch mais pas enb-branch.

git diff a-branch..b-branch

Affiche le diff entre deux commits spécifiques.

git diff 61ce3e6..e221d9c

Caché

Parfois, vous constaterez que vous avez modifié certains codes, mais avant de terminer, vous devez commencer à travailler sur autre chose. Vous n'êtes pas tout à fait prêt à appliquer les modifications que vous avez apportées jusqu'à présent, mais vous ne voulez pas perdre votre travail. La commandegit stash vous permettra de sauvegarder vos modifications locales et de revenir au répertoire de travail correspondant au dernier commitHEAD.

Rangez votre travail actuel.

git stash

Voir ce que vous avez actuellement caché.

git stash list

Vos cachettes seront nomméesstash@{0},stash@{1}, et ainsi de suite.

Afficher des informations sur une réserve particulière.

git stash show stash@{0}

Pour sortir les fichiers de la réserve actuelle de la réserve tout en conservant la réserve, utilisezapply.

git stash apply stash@{0}

Si vous voulez sortir des fichiers d'une cachette et n'avez plus besoin de la cachette, utilisezpop.

git stash pop stash@{0}

Si vous n'avez plus besoin des fichiers enregistrés dans une réserve particulière, vous pouvezdrop la cacher.

git stash drop stash@{0}

Si vous avez plusieurs cachettes enregistrées et que vous n'avez plus besoin d'en utiliser, vous pouvez utiliserclear pour les supprimer.

git stash clear

Ignorer des fichiers

Si vous souhaitez conserver les fichiers dans votre répertoire Git local, mais que vous ne souhaitez pas les valider dans le projet, vous pouvez ajouter ces fichiers à votre fichier.gitignore afin qu'ils ne provoquent pas de conflits.

Utilisez un éditeur de texte tel que nano pour ajouter des fichiers au fichier.gitignore.

nano .gitignore

Pour voir des exemples de fichiers.gitignore, vous pouvez consulter les.gitignore template repo de GitHub.

Repositionnement

Une rebase nous permet de déplacer des branches en modifiant le commit sur lequel elles sont basées. Avec le rebasement, vous pouvez écraser ou reformuler les commits.

Vous pouvez démarrer un rebase en appelant le nombre de validations que vous avez effectuées et que vous souhaitez rebaser (5 dans le cas ci-dessous).

git rebase -i HEAD~5

Vous pouvez également vous baser sur une chaîne de validation ou un hachage particulier.

git rebase -i 074a4e5

Une fois que vous avez annulé ou reformulé les validations, vous pouvez compléter la nouvelle base de votre branche par-dessus la dernière version du code en amont du projet.

git rebase upstream/master

Pour en savoir plus sur le rebasage et la mise à jour, vous pouvez lireHow To Rebase and Update a Pull Request, qui est également applicable à tout type de validation.

Réinitialisation

Parfois, y compris après une nouvelle base, vous devez réinitialiser votre arbre de travail. Vous pouvez réinitialiser un commit particulier, etdelete all changes, avec la commande suivante.

git reset --hard 1fc6665

Pour forcer le transfert de votre dernier commit non conflictuel connu vers le référentiel d'origine, vous devrez utiliser--force.

[.warning] #Warning: forcer à maîtriser est souvent mal vu à moins qu'il n'y ait une raison vraiment importante de le faire. Utilisez avec parcimonie lorsque vous travaillez sur vos propres référentiels, et évitez cela lorsque vous collaborez.
#

git push --force origin master

Pour supprimer les fichiers et sous-répertoires locaux non suivis du répertoire Git pour une branche de travail propre, vous pouvez utilisergit clean.

git clean -f -d

Si vous devez modifier votre référentiel local pour qu'il ressemble au maître en amont actuel (c'est-à-dire qu'il existe trop de conflits), vous pouvez effectuer une réinitialisation matérielle.

[.note] #Note: L'exécution de cette commande donnera à votre référentiel local un aspect exactement comme l'amont. Toutes les validations que vous avez effectuées mais qui n'ont pas été tirées dans leswill be destroyed en amont.
#

git reset --hard upstream/master

Conclusion

Ce guide couvre certaines des commandes Git les plus courantes que vous pouvez utiliser pour gérer des référentiels et collaborer sur des logiciels.

Vous pouvez en savoir plus sur les logiciels open source et la collaboration dans nosIntroduction to Open Source tutorial series:

Il existe de nombreuses autres commandes et variantes que vous pourrez trouver utiles dans le cadre de votre travail avec Git. Pour en savoir plus sur toutes les options disponibles, vous pouvez exécuter:

git --help

Pour recevoir des informations utiles. Vous pouvez également en savoir plus sur Git et consulter la documentation de Git à partir desofficial Git website.