Maison  >  Article  >  outils de développement  >  Laissez-vous comprendre le code de rollback git (exemples détaillés)

Laissez-vous comprendre le code de rollback git (exemples détaillés)

WBOY
WBOYavant
2022-02-15 17:39:296659parcourir

Cet article vous apporte des connaissances pertinentes sur le code de restauration GitGit est un système de contrôle de version distribué open source qui peut gérer efficacement et rapidement la gestion des versions de projets petits à très grands. utile.

Laissez-vous comprendre le code de rollback git (exemples détaillés)

Dans le processus de codage quotidien, la fusion entre les branches, la restauration, la soumission, le marquage et d'autres opérations sont inévitables si vous ne savez toujours pas comment utiliser l'outil git pour restaurer le code, ou si vous êtes toujours inquiet. vous n'êtes pas sûr de faire des erreurs. Il est très dangereux de perdre le code. Après tout, perdre le code est un gros problème. Cela peut vous faire perdre une petite quantité de performances ou beaucoup de points, mais ne vous inquiétez pas. J'ai la chance de lire cet article. Après l'avoir lu, vous n'aurez pas de cas de perte de code, car je vais vous guider étape par étape pour construire une branche pour simuler la situation courante de rollback

Introduction

Git (prononcé comme /gɪt/) est un système de contrôle de version distribué open source qui peut traiter efficacement et rapidement la gestion des versions de petits et très grands projets.

Avant-propos

Dans la restauration quotidienne du code, il existe deux méthodes couramment utilisées : git revert et git reset pour la restauration. Ces deux méthodes correspondent à des méthodes différentes. Je ferai de mon mieux. pour présenter ce que ces deux commandes peuvent faire de manière simple et claire. Ensuite, je vais extraire une nouvelle branche de mon entrepôt personnel à partir de 0 et construire deux branches, à savoir la branche principale master et la branche Develop. développer pour la simulationgit revertgit reset来进行回滚,这两种分别对应的不同的情况我尽量简单明了的介绍这两个命令都能做些什么,接下来我会从个人仓库新拉个分支从0开始,建两个分支,分别是主分支master和开发分支develop来进行模拟

reset介绍

1、reset的作用是当你希望提交的commit从历史记录中完全消失就可以用

2、比如你在master分支提交了A-->B-->C提交了三个记录,这个时候如果C记录有问题你想回滚到B就可以用git reset进行

3、这个命令大概率的情况都是用在我们主分支的,因为我们上线的分支一般是master分支然后从develop进行功能开发

4、开发完成之后将分支合并到master,如果在上线之前发现合并的分支用问题可以将develop合并过来的分支进行回滚

5、说白了就是取消develop的本次合并

6、但是有一种情况就是协作开发的时候大家都合并到master之后就不能用reset强行回滚commit因为这样会把其他人的提交记录给冲掉,这时候就可以用revert来进行操作我们在下面说

制造一个分支模拟环境

1.从你自己的git仓库创建一个新项目之后拉到本地

2.创建一个index.js随便写点东西,之后提交到仓库

Laissez-vous comprendre le code de rollback git (exemples détaillés)

3.我们在终端使用git log查看commit可以看到目前只有一个刚才提交的commit

Laissez-vous comprendre le code de rollback git (exemples détaillés)

4.我们从master分支迁出一个develop分支git branch develop,并且切换到该分支 git checkout develop

5.在develop

reset introduction

1 La fonction de reset est lorsque vous souhaitez soumettre commit complètement. disparaître de l'historique, vous pouvez utiliser

Laissez-vous comprendre le code de rollback git (exemples détaillés)2. Par exemple, si vous avez soumis trois enregistrements dans la branche master, A-->B-->C. , s'il y a un problème avec l'enregistrement C à ce moment-là et que vous souhaitez revenir à B, vous pouvez utiliser git reset pour le faire

3. notre branche principale, car nous sommes en ligne La branche est généralement la branche master et ensuite le développement fonctionnel est effectué à partir de develop

4. Une fois le développement terminé, fusionnez les. branchez-vous dans master S'il est découvert avant d'être en ligne. S'il y a un problème avec la branche fusionnée, vous pouvez restaurer la branche fusionnée de developLaissez-vous comprendre le code de rollback git (exemples détaillés)

5. cela signifie carrément annuler la fusion de develop

6 Mais il y a une situation : pendant le développement collaboratif, une fois que tout le monde a fusionné dans master, vous ne pouvez pas utiliser <. code>reset pour annuler de force commit car cela transférera les enregistrements de soumission d'autres personnes vers Flush, vous pourrez alors utiliser revert pour effectuer l'opération. Nous en reparlerons. à ce sujet ci-dessous

Laissez-vous comprendre le code de rollback git (exemples détaillés)Laissez-vous comprendre le code de rollback git (exemples détaillés)Créez un environnement de simulation de branche

1 Créez un nouveau projet à partir de votre propre référentiel git et transférez-le vers le local

2 Créez un index.js et écrivez quelque chose avec désinvolture, puis soumettez-le au fichier local. entrepôt

Laissez-vous comprendre le code de rollback git (exemples détaillés)

3. Nous utilisons git log pour afficher les commits dans le terminal et nous pouvons voir qu'il n'y a actuellement qu'un seul commit qui vient d'être soumis🎜🎜Laissez-vous comprendre le code de rollback git (exemples détaillés)🎜🎜4. Nous avons supprimé une branche develop git branch develop, et passez à cette branche git checkout develop🎜🎜5 Ajoutez une nouvelle branche à la branche develop Un morceau de code, à ce moment, un nouvel enregistrement de B est ajouté. à l'enregistrement de commit de develop 🎜🎜🎜🎜🎜6 Ensuite, ajoutez un morceau de code à la branche de développement🎜🎜🎜🎜🎜7. Jetez un œil aux derniers enregistrements de commit de la branche de développement et de la branche master. Vous pouvez voir que la branche dev a deux commits avant la branche master🎜🎜🎜🎜🎜🎜🎜 Notez qu'il y a un problème ici lorsque vous fusionnez des branches, vous constaterez parfois que même si le code est différent, vous serez invité à savoir quand. fusion de branches. Le code n'est pas mis à jour car l'enregistrement de validation de la branche de développement actuelle est en retard par rapport à la branche cible à fusionner. La raison en est l'abus de la réinitialisation, donc la réinitialisation doit être utilisée avec prudence🎜🎜🎜🎜 Utilisez la réinitialisation pour. ressens-le juste un instant 🎜🎜

1. Nous fusionnons le code de la branche develop dans master, passons à la branche master et exécutons git merge develop code><code>develop分支的代码合并到master,切换到master分支 执行git merge develop

2.我们在master分支使用git log查看commit记录找到B记录,准备回滚这一条,回滚的时候不需要输入全部的commid一般是前7位就够用

Laissez-vous comprendre le code de rollback git (exemples détaillés)

3.重点来了我们使用git reset 69fde2c进行回滚,这个时候查看log记录发现最后一条新增c记录没有了,这里还有个问题如果直接使用git push推送会有以下提示。

Laissez-vous comprendre le code de rollback git (exemples détaillés)

这是因为本地的记录因为我们的回滚已经落后于仓库的代码了,这个使用需要使用git push -f进行强制提交

4.这个时候master分支就剩下A和B的commit记录了,到这里就是一次完整的reset回滚记录,之后我们还是可以继续正常把develop分支合并到master的

Laissez-vous comprendre le code de rollback git (exemples détaillés)

revert介绍

1、revert的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险

2、revert可以抵消上一个提交,那么如果想要抵消多个需要执行 git revert 倒数第一个commit id 倒数第二个commit

3、这个就常用于当你提交了一次commit之后发现提交的可能有问题就可以用到revert

4、还有一种情景是已经有很多人提交过代码,但是想改之前的某一次commit记录又不想影响后面的也可以使用revert,他会把你后面提交的记录都放到工作区只是合并的时候需要注意一点

我们来模拟一下环境

1.切到develop分支现在该分支有三个commit记录Laissez-vous comprendre le code de rollback git (exemples détaillés)

2.我们使用rever进行回滚试一下git revert 16083ce,如果你也用的是vs code可以看到工作区的变化,并且在控制台可以提交默认的commit

Laissez-vous comprendre le code de rollback git (exemples détaillés)

3.看一下log记录,可以看到新增了一个记录Revert 新增C,并且原来的新增C还是在的

Laissez-vous comprendre le code de rollback git (exemples détaillés)

commit记录打tag

1、在上线之前我们需要对当前的commit记录打一个tag方便上线的代码有问题可以及时回滚

我们来介绍一下常用的几个命令

1.git tag列出所有的tag列表

Laissez-vous comprendre le code de rollback git (exemples détaillés)

2.创建一个tag,使用git tag [name],我们新增一个 git tag 测试4,在使用git tag 查看一下

Laissez-vous comprendre le code de rollback git (exemples détaillés)

3.查看tag对应的commit信息,git show [tag名字],举个例子git show 测试1

2. Nous utilisons git log sur la branche master pour vérifier l'enregistrement de validation et trouver l'enregistrement B, et nous préparer à restaurer celui-ci. Lors de la restauration, vous n'avez pas besoin de le faire. entrez tous les commits. Généralement, les 7 premiers chiffres suffisent

Laissez-vous comprendre le code de rollback git (exemples détaillés) 5160a2005420978bcac99ed9e3c4ee3. ré .png

3. L'accent est mis sur nous. Utilisez git reset 69fde2c pour revenir en arrière. À ce stade, vérifiez l'enregistrement du journal et constatez que le dernier nouveau c l'enregistrement a disparu. Il y a un autre problème ici si vous utilisez directement git pushPush aura l'invite suivante.

Laissez-vous comprendre le code de rollback git (exemples détaillés)

C'est parce que L'enregistrement local a pris du retard par rapport au code de l'entrepôt à cause de notre restauration. Pour cette utilisation, vous devez utiliser git push -f pour forcer la validation

4. la branche est laissée avec A. Le commit avec B a été enregistré. Il s'agit d'un enregistrement complet de réinitialisation et de restauration. Après cela, nous pouvons continuer à fusionner la branche de développement dans le maître normalement
Laissez-vous comprendre le code de rollback git (exemples détaillés)

introduction au retour

🎜1. Le principe du retour est-ce après le soumission actuelle, ajouter une nouvelle soumission, annulant toutes les modifications causées par le commit précédent. Cela ne changera pas l'historique passé, c'est donc la méthode préférée sans aucun risque de perte de code🎜🎜2 Revert peut compenser le commit précédent, donc si vous souhaitez compenser plusieurs soumissions, vous devez exécuter git revert et. l'identifiant du dernier commit L'avant-dernier commit🎜🎜3 Ceci est souvent utilisé lorsque vous soumettez un commit et constatez qu'il peut y avoir un problème avec la soumission. Vous pouvez également utiliser revert🎜🎜4. de nombreuses personnes l'ont déjà soumis, mais si vous souhaitez modifier un certain enregistrement de validation précédent sans affecter les suivants, vous pouvez également utiliser Revert. Il placera tous les enregistrements que vous soumettez plus tard dans l'espace de travail. attention lors de la fusion. 🎜🎜Simulons l'environnement🎜🎜1. Basculez vers la branche de développement. La branche a maintenant trois enregistrements de validation Laissez-vous comprendre le code de rollback git (exemples détaillés)🎜🎜2. Essayons d'utiliser rever pour restaurer git revert 16083ce code>. Si vous êtes également en utilisant vs code, vous pouvez voir les modifications dans l'espace de travail et vous pouvez soumettre le commit par défaut dans la console🎜🎜<img src="https://img.php.cn/upload/article/000/000/067/%201f890f5232a38d608ec671dacea5b18f-11.png" alt="Laissez-vous comprendre le code de rollback git (exemples détaillés) "> 🎜🎜3. Regardez l'enregistrement du journal, vous pouvez voir qu'un nouvel enregistrement <code>Revert New C a été ajouté, et l'original Le nouveau C est toujours là🎜🎜4a1daf6769ae6e16423d7732f441be78. png 🎜

balise d'enregistrement de validation

🎜1. Avant de passer en ligne, nous devons marquer l'enregistrement de validation actuel afin que s'il y a des problèmes avec le code en ligne, nous puissions le restaurer time🎜🎜Présentons quelques commandes couramment utilisées 🎜🎜1.git tag répertorie toutes les listes de balises🎜🎜4b1e4e2b5ccbc34d361435339def8a 2c. png🎜🎜3. Vérifiez les informations de commit correspondant à la balise, git show [tag name] , par exemple git show test 1, s'il y a des problèmes après la connexion, nous pouvons effectuer une restauration du code en fonction de l'identifiant de validation dans l'image ci-dessous🎜🎜🎜🎜🎜Fin🎜🎜Outils de gestion Git peut être considéré comme étant utilisé tous les jours dans notre vie quotidienne, nous devons donc maîtriser fermement les méthodes correspondant aux scénarios de problèmes courants afin d'éviter d'être submergé lorsque nous le rencontrons🎜🎜Apprentissage recommandé : "🎜Tutoriel Git🎜"🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer