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.
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
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.
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 revert
和git reset
来进行回滚,这两种分别对应的不同的情况我尽量简单明了的介绍这两个命令都能做些什么,接下来我会从个人仓库新拉个分支从0开始,建两个分支,分别是主分支master
和开发分支develop
来进行模拟
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随便写点东西,之后提交到仓库
3.我们在终端使用git log
查看commit可以看到目前只有一个刚才提交的commit
4.我们从master
分支迁出一个develop
分支git branch develop
,并且切换到该分支 git checkout develop
5.在develop
reset
est lorsque vous souhaitez soumettre commit
complètement. disparaître de l'historique, vous pouvez utiliser 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 develop
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-dessousCréez un environnement de simulation de branche
2 Créez un index.js et écrivez quelque chose avec désinvolture, puis soumettez-le au fichier local. entrepôt1 Créez un nouveau projet à partir de votre propre référentiel git et transférez-le vers le local
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🎜🎜🎜🎜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位就够用
3.重点来了我们使用git reset 69fde2c
进行回滚,这个时候查看log记录发现最后一条新增c
记录没有了,这里还有个问题如果直接使用git push
推送会有以下提示。
这是因为本地的记录因为我们的回滚已经落后于仓库的代码了,这个使用需要使用
git push -f
进行强制提交
4.这个时候master分支就剩下A和B的commit记录了,到这里就是一次完整的reset回滚记录,之后我们还是可以继续正常把develop分支合并到master的
1、revert的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险
2、revert可以抵消上一个提交,那么如果想要抵消多个需要执行 git revert 倒数第一个commit id 倒数第二个commit
3、这个就常用于当你提交了一次commit之后发现提交的可能有问题就可以用到revert
4、还有一种情景是已经有很多人提交过代码,但是想改之前的某一次commit记录又不想影响后面的也可以使用revert,他会把你后面提交的记录都放到工作区只是合并的时候需要注意一点
我们来模拟一下环境
1.切到develop分支现在该分支有三个commit记录
2.我们使用rever进行回滚试一下git revert 16083ce
,如果你也用的是vs code可以看到工作区的变化,并且在控制台可以提交默认的commit
3.看一下log记录,可以看到新增了一个记录Revert 新增C
,并且原来的新增C
还是在的
1、在上线之前我们需要对当前的commit记录打一个tag方便上线的代码有问题可以及时回滚
我们来介绍一下常用的几个命令
1.git tag
列出所有的tag列表
2.创建一个tag,使用git tag [name]
,我们新增一个 git tag 测试4
,在使用git tag
查看一下
3.查看tag对应的commit信息,git show [tag名字]
,举个例子git show 测试1
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
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 push
Push aura l'invite suivante.
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 normalementgit 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 🎜🎜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à🎜🎜🎜git tag
répertorie toutes les listes de balises🎜🎜🎜🎜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!