Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (2023)

Leréinitialisation de git,paiement git, etgit revenirLes commandes font partie des outils les plus utiles de votre boîte à outils Git. Ils vous permettent tous d'annuler une sorte de modification dans votre référentiel, et les deux premières commandes peuvent être utilisées pour manipuler des commits ou des fichiers individuels.

Parce qu'ils sont si similaires, il est très facile de confondre la commande à utiliser dans un scénario de développement donné. Dans cet article, nous allons comparer les configurations les plus courantes deréinitialisation de git,paiement git, etgit revenir. J'espère que vous repartirez avec la confiance nécessaire pour naviguer dans votre référentiel à l'aide de l'une de ces commandes.

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (1)

Il est utile de penser à chaque commande en fonction de son effet sur les trois mécanismes de gestion d'état d'un référentiel Git : le répertoire de travail, l'instantané intermédiaire et l'historique de validation. Ces composants sont parfois appelés "Les trois arbres" de Git. Nous explorons les trois arbres en profondeur sur leréinitialisation de gitpage. Gardez ces mécanismes à l'esprit pendant que vous lisez cet article.

Une caisse est une opération qui déplace leDIRIGERref pointeur vers un commit spécifié. Pour le démontrer, considérons l'exemple suivant.

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (2)

Cet exemple montre une séquence de commits sur leprincipalbifurquer. LeDIRIGERréf etprincipalla référence de branche pointe actuellement vers le commit d. Exécutons maintenantgit paiement b

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (3)

(Video) Git and GitHub for Beginners - Crash Course

Il s'agit d'une mise à jour de l'arborescence "Commit History". Lepaiement gitLa commande peut être utilisée dans une portée de validation ou de niveau fichier. Une extraction au niveau du fichier remplacera le contenu du fichier par celui du commit spécifique.

Un retour est une opération qui prend un commit spécifié et crée un nouveau commit qui inverse le commit spécifié.git revenirne peut être exécuté qu'au niveau de la validation et n'a pas de fonctionnalité au niveau du fichier.

Une réinitialisation est une opération qui prend un commit spécifié et réinitialise les "trois arbres" pour correspondre à l'état du référentiel à ce commit spécifié. Une réinitialisation peut être invoquée dans trois modes différents qui correspondent aux trois arbres.

L'extraction et la réinitialisation sont généralement utilisées pour effectuer des "annulations" locales ou privées. Ils modifient l'historique d'un référentiel, ce qui peut provoquer des conflits lors de la transmission vers des référentiels partagés distants. La restauration est considérée comme une opération sûre pour les "annulations publiques" car elle crée un nouvel historique qui peut être partagé à distance et n'écrase pas l'historique dont les membres de l'équipe distante peuvent dépendre.

Référence Git Reset vs Revert vs Checkout

Le tableau ci-dessous résume les cas d'utilisation les plus courants pour l'ensemble de ces commandes. Assurez-vous de garder cette référence à portée de main, car vous devrez sans aucun doute en utiliser au moins certains au cours de votre carrière Git.

Commande Portée Cas d'utilisation courants
réinitialisation de git Au niveau de l'engagement Supprimer les commits dans une branche privée ou supprimer les modifications non validées
réinitialisation de git Au niveau du fichier Désorganiser un fichier
paiement git Au niveau de l'engagement Basculez entre les branches ou inspectez les anciens instantanés
paiement git Au niveau du fichier Ignorer les modifications dans le répertoire de travail
git revenir Au niveau de l'engagement Annuler les commits dans une branche publique
git revenir Au niveau du fichier (N / A)

Opérations au niveau de la validation

Les paramètres que vous passez àréinitialisation de gitetpaiement gitdéterminer leur portée. Lorsque vous n'incluez pas de chemin de fichier en tant que paramètre, ils fonctionnent sur des commits entiers. C'est ce que nous allons explorer dans cette section. Noter quegit revenirn'a pas d'équivalent au niveau du fichier.

Réinitialiser un commit spécifique

Au niveau du commit, la réinitialisation est un moyen de déplacer la pointe d'une branche vers un autre commit. Cela peut être utilisé pour supprimer les commits de la branche actuelle. Par exemple, la commande suivante déplace lecorrectifbranche vers l'arrière par deux commits.

git checkout hotfix git reset HEAD~2

Les deux commits qui étaient à la fin decorrectifsont maintenant suspendus ou commits orphelins. Cela signifie qu'ils seront supprimés la prochaine fois que Git effectuera un ramasse-miettes. En d'autres termes, vous dites que vous voulez jeter ces commits. Cela peut être visualisé comme suit :

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (4)

(Video) Git It? How to use Git and Github

Cette utilisation deréinitialisation de gitest un moyen simple d'annuler des modifications qui n'ont été partagées avec personne d'autre. C'est votre commande préférée lorsque vous avez commencé à travailler sur une fonctionnalité et que vous vous retrouvez à penser : « Oh merde, qu'est-ce que je fais ? Je devrais juste recommencer.

En plus de déplacer la branche actuelle, vous pouvez également obtenirréinitialisation de gitpour modifier l'instantané intermédiaire et/ou le répertoire de travail en lui transmettant l'un des indicateurs suivants :

  • --doux– L'instantané intermédiaire et le répertoire de travail ne sont en aucun cas modifiés.
  • --mixte– L'instantané intermédiaire est mis à jour pour correspondre à la validation spécifiée, mais le répertoire de travail n'est pas affecté. Ceci est l'option par défaut.
  • --dur– L'instantané intermédiaire et le répertoire de travail sont tous deux mis à jour pour correspondre à la validation spécifiée.

Il est plus facile de considérer ces modes comme définissant la portée d'unréinitialisation de gitopération. Pour plus d'informations détaillées, visitez leréinitialisation de gitpage.

Vérifier les anciens commits

Lepaiement gitLa commande est utilisée pour mettre à jour l'état du référentiel à un point spécifique dans l'historique des projets. Lorsqu'il est passé avec un nom de branche, il vous permet de basculer entre les branches.

 correctif git checkout

En interne, la commande ci-dessus ne fait que déplacerDIRIGERvers une autre branche et mettez à jour le répertoire de travail en conséquence. Comme cela a le potentiel d'écraser les modifications locales, Git vous oblige à valider ouplanquetoutes les modifications dans le répertoire de travail qui seront perdues lors de l'opération d'extraction. Contrairement àréinitialisation de git,paiement gitne déplace aucune branche.

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (5)

Vous pouvez également extraire des commits arbitraires en transmettant la référence de commit au lieu d'une branche. Cela fait exactement la même chose que l'extraction d'une branche : cela déplace leDIRIGERréférence au commit spécifié. Par exemple, la commande suivante extrait le grand-parent du commit actuel :

 git checkout HEAD~2

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (6)

Ceci est utile pour inspecter rapidement une ancienne version de votre projet. Cependant, puisqu'il n'y a pas de référence de branche à l'actuelDIRIGER, cela vous place dans une maison individuelleDIRIGERÉtat. Cela peut être dangereux si vous commencez à ajouter de nouveaux commits car il n'y aura aucun moyen d'y revenir après avoir basculé vers une autre branche. Pour cette raison, vous devez toujours créer une nouvelle branche avant d'ajouter des commits à une branche détachée.DIRIGER.

(Video) Part 12 | Git Git Tutorial | GitHub | Clone | Push | Pull | Git Commands

Annuler les commits publics avec Revert

La restauration annule un commit en créant un nouveau commit. C'est un moyen sûr d'annuler les modifications, car il n'a aucune chance de réécrire l'historique de validation. Par exemple, la commande suivante déterminera les modifications contenues dans l'avant-dernier commit, créera un nouveau commit annulant ces modifications et ajoutera le nouveau commit au projet existant.

git checkout hotfix git revert HEAD~2

Cela peut être visualisé comme suit :

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (7)

Comparez cela avecréinitialisation de git, quifaitmodifier l'historique de validation existant. Pour cette raison,git revenirdoit être utilisé pour annuler les modifications sur une branche publique, etréinitialisation de gitdoit être réservé pour annuler les modifications sur une branche privée.

Vous pouvez aussi penser àgit revenircomme outil pour défaireengagéchange, tandis queTÊTE de réinitialisation de gitest pour défairenon engagéchangements.

Commepaiement git,git revenira le potentiel d'écraser des fichiers dans le répertoire de travail, il vous demandera donc de valider ouchangements de réservequi serait perdu lors de l'opération de retour.

Opérations au niveau des fichiers

Leréinitialisation de gitetpaiement gitLes commandes acceptent également un chemin de fichier facultatif comme paramètre. Cela modifie radicalement leur comportement. Au lieu d'opérer sur des instantanés entiers, cela les oblige à limiter leurs opérations à un seul fichier.

Git réinitialiser un fichier spécifique

Lorsqu'il est invoqué avec un chemin de fichier,réinitialisation de gitmet à jour leinstantané mis en scènepour correspondre à la version du commit spécifié. Par exemple, cette commande récupérera la version defoo.pydans l'avant-dernier commit et préparez-le pour le prochain commit :

git reset HEAD~2 foo.py

Comme avec la version au niveau de la validation deréinitialisation de git, ceci est plus couramment utilisé avecDIRIGERplutôt qu'un commit arbitraire. En coursgit reset HEAD foo.pyva déjouerfoo.py. Les modifications qu'il contient seront toujours présentes dans le répertoire de travail.

(Video) Git Tutorial for Beginners

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (8)

Le--doux,--mixte, et--durles drapeaux n'ont aucun effet sur la version au niveau du fichier deréinitialisation de git, car l'instantané mis en scène esttoujoursmis à jour, et le répertoire de travail estjamaismis à jour.

Fichier de paiement Git

L'extraction d'un fichier est similaire à l'utilisationréinitialisation de gitavec un chemin de fichier, sauf qu'il met à jour ledirecteur de travailà la place de la scène. Contrairement à la version au niveau de la validation de cette commande, cela ne déplace pas leDIRIGERréférence, ce qui signifie que vous ne changerez pas de branche.

Réinitialisation, extraction et restauration | Tutoriel Atlassian Git (9)

Par exemple, la commande suivante rendfoo.pydans le répertoire de travail correspond à celui de l'avant-dernier commit :

git checkout HEAD~2 foo.py

Tout comme l'invocation au niveau de la validation depaiement git, cela peut être utilisé pour inspecter les anciennes versions d'un projet, mais la portée est limitée au fichier spécifié.

Si vous transférez et validez le fichier extrait, cela a pour effet de "revenir" à l'ancienne version de ce fichier. Notez que cela supprimetousdes modifications ultérieures du dossier, alors quegit revenirLa commande annule uniquement les modifications introduites par le commit spécifié.

Commeréinitialisation de git, ceci est couramment utilisé avecDIRIGERcomme référence de validation. Par exemple,git checkout HEAD foo.pya pour effet de rejeter les modifications non échelonnées àfoo.py. C'est un comportement similaire àgit reset HEAD --hard, mais il ne fonctionne que sur le fichier spécifié.

Résumé

Vous devriez maintenant disposer de tous les outils dont vous pourriez avoir besoin pour annuler les modifications dans un référentiel Git. Leréinitialisation de git,paiement git, etgit revenirLes commandes peuvent prêter à confusion, mais lorsque vous pensez à leurs effets sur le répertoire de travail, l'instantané mis en scène et l'historique des validations, il devrait être plus facile de discerner quelle commande correspond à la tâche de développement en cours.

(Video) How to use Git - Git Video Tutorial - Part 3 (The basic file flow, rm, add, commit, gitignore)

FAQs

How to remove git initialization? ›

In order to do that:
  1. Press “Ctrl” + “Alt” + “T” to open the terminal. Opening the Terminal.
  2. Type in the following command and press “Enter”. rm -rf .git.
  3. This will delete the entire git repository and undo the changes made by the init command.
Oct 13, 2022

What is the difference between revert and reset in git? ›

While git reset does this by moving the current head of the branch back to the specified commit, thereby changing the commit history, git revert does this by creating a new commit that undoes the changes in the specified commit and so does not change the history.

What is difference between reset revert and restore? ›

Notice that revert and reset are history altering (making a new commit in former, and moving the tip in the latter), where as restore does not modify history. Let's consider an example of when you'd want to use restore instead of revert or reset .

How to revert changes using git command? ›

First, you'll need to find the ID of the revision you want to see. This assumes that you're developing on the default main branch. Once you're back in the main branch, you can use either git revert or git reset to undo any undesired changes.

How to reinitialize a git? ›

Performing a Reset (Git Reset)

First, you'll need to fetch the latest state of the remote repository, usually "origin," and then checkout the master branch (or whichever one you're resetting to). You can also check out and reset to an individual commit using its ID, e.g., git checkout 342c47a4 .

How to remove git installation? ›

Most of the computer programs have uninstall.exe or uninst000.exe in their installation folders.
  1. Go to the installation folder of Git. Most of the times it is located in C:\Programs files or C:\Program files(x86)
  2. Double click the file to start the uninstallation process.

Does git reset remove changes? ›

The git reset –hard command will revert uncommitted changes that exist in files that have been added to the index, whether those files are newly created files, or files that were added to the index in the past and have been edited since the last commit.

What are the three types of git reset? ›

These trees are the Commit History ( HEAD ), the Staging Index, and the Working Directory. There are three command line options that correspond to the three trees. The options --soft, --mixed , and --hard can be passed to git reset .

Does git reset remove commits? ›

To remove the last commit from git, you can simply run git reset --hard HEAD^ If you are removing multiple commits from the top, you can run git reset --hard HEAD~2 to remove the last two commits. You can increase the number to remove even more commits.

What should I backup before resetting? ›

The following items are included in the backup:
  1. App data.
  2. Call history.
  3. Contacts.
  4. Settings.
  5. SMS messages.
  6. Pictures and videos.
  7. MMS messages.
Mar 23, 2023

What is the difference between revert and rebase? ›

rebase doesn't change the code at all, but just changes the history. Revert allows you revert to a particular commit, losing everything between HEAD and that commit.

How to restore all changes in git? ›

If you want to undo all of your current changes, you can use the git restore command with the "." parameter (instead of specifying a file path): $ git restore .

How to revert changes in git without commit? ›

--no-commit or -n

Typically, when you run a git revert command, Git creates commits with commit log messages stating which commits were reverted. If you wish to add more changes before committing reverted changes, simply add --no-commit or -n to the revert message.

How do I revert local committed changes? ›

Undoing a Git Commit Using a Hard Reset

git reset --hard <version> also rewinds the HEAD version to the specified version the same way a soft reset does. The earlier commits are still removed from the log and the local repository.

How do I revert back to a previous commit? ›

To revert to the to the previous commit, run the git revert command along with the commit ID of the current commit.

How to remove initial commit from remote git? ›

To delete commits from remote, you can use the git reset command if your commits are consecutive from the top or an interactive rebase otherwise. After you delete the commits locally, push those changes to the remote using the git push command with the force option.

How to remove git integration? ›

Go to the Manage Git repositories page for your Jira instance (Jira dashboard menu Git ➜ Manage repositories). Click Actions ➜ Remove integration for the selected integration configuration.

How to remove a remote origin git? ›

The git remote remove command removes a remote from a local repository. You can use the shorter git remote rm command too. The syntax for this command is: git remote rm <remote-url>. If you remove a remote accidentally, you will need to add it back manually using the git remote add command.

What is the remove command for git? ›

The git rm command can be used to remove individual files or a collection of files. The primary function of git rm is to remove tracked files from the Git index. Additionally, git rm can be used to remove files from both the staging index and the working directory.

Videos

1. GitKraken Git Client Tutorial For Beginners by Axosoft
(Axosoft)
2. What is a pull request? [Intermediate Git Tutorial]
(GitKraken)
3. Git and Github Tutorial | Learn Git & Github from Andrei Neagoie
(Zero To Mastery)
4. Learn GitLab in 3 Hours | GitLab Complete Tutorial For Beginners
(LambdaTest)
5. How to Fix “Script Error” An Error Has Occurred In The Script On This Page In Windows 11/10 PC
(MDTechVideos)
6. 2. Starting your first Web Software project - Agile Toolkit Tutorial
(Romans Malinovskis)
Top Articles
Latest Posts
Article information

Author: Dr. Pierre Goyette

Last Updated: 03/08/2023

Views: 5245

Rating: 5 / 5 (50 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Dr. Pierre Goyette

Birthday: 1998-01-29

Address: Apt. 611 3357 Yong Plain, West Audra, IL 70053

Phone: +5819954278378

Job: Construction Director

Hobby: Embroidery, Creative writing, Shopping, Driving, Stand-up comedy, Coffee roasting, Scrapbooking

Introduction: My name is Dr. Pierre Goyette, I am a enchanting, powerful, jolly, rich, graceful, colorful, zany person who loves writing and wants to share my knowledge and understanding with you.