Maison  >  Article  >  outils de développement  >  Utilisation avancée de git

Utilisation avancée de git

PHPz
PHPzoriginal
2023-05-17 15:10:07488parcourir

Dans le domaine du développement, Git est un puissant outil de contrôle de version. Il aide les développeurs à gérer facilement plusieurs versions de code, rendant ainsi la collaboration en équipe plus efficace. Bien que Git soit devenu un outil couramment utilisé par les programmeurs, de nombreuses personnes n’utilisent que les fonctions de base et sont incapables d’exploiter toute la puissance de Git. Cet article présentera l'utilisation avancée de Git pour aider les lecteurs à mieux comprendre Git et à améliorer son efficacité.

  1. Rebase

Rebase est un moyen de modifier l'historique des soumissions, transformant les soumissions initialement parallèles en une ligne droite. La plus grande différence entre Rebase et Merge est que Rebase modifie l'ordre des soumissions, tandis que Merge ne modifie pas l'ordre des soumissions.

Dans certains cas, Rebase est meilleur que Merge. Par exemple, lors de la fusion de branches, l'utilisation de Merge rendra l'historique des soumissions difficile à maintenir, mais l'utilisation de Rebase peut garder l'historique des soumissions concis et ordonné. Dans le même temps, l’utilisation de Rebase peut également éviter les conflits lorsque plusieurs personnes collaborent.

Utiliser Rebase est très simple, il suffit d'exécuter la commande sur la branche actuelle :

git rebase <branch>

Où, d9a7422b1cf5be0d32831e8302405909 est la branche à fusionner. Après une exécution réussie, Git reconstruira automatiquement l'historique de soumission de la branche actuelle dans une séquence de soumission linéaire. d9a7422b1cf5be0d32831e8302405909是要合并的分支。执行成功后,Git将自动将当前分支的提交历史重构为一个线性的提交序列。

  1. Cherry-pick

Cherry-pick是一种选取提交并将其应用到当前分支的方法。有时候,我们会需要将另一个分支的某个提交应用到当前分支上,Cherry-pick就能够解决这个问题。

使用Cherry-pick很简单,只需要在当前分支上执行命令:

git cherry-pick <commit>

其中,bc59094fbd619487e70ee0dbb7ee2c82是要应用的提交。执行成功后,Git会将指定的提交应用到当前分支上。

  1. Bisect

Bisect是一种二分查找的方法,用于查找程序中的错误。使用Bisect,我们可以快速定位错误出现的位置。

使用Bisect需要执行以下步骤:

  1. 标记当前状态为Good(正确)
git bisect start
git bisect good <commit>

其中,bc59094fbd619487e70ee0dbb7ee2c82是当前正确的提交。执行成功后,Git会标记当前状态为Good。

  1. 标记最新状态为Bad(错误)
git bisect bad <commit>

其中,bc59094fbd619487e70ee0dbb7ee2c82是最新的提交。执行成功后,Git会标记当前状态为Bad。

  1. 标记中间状态

使用Bisect,Git会自动在提交历史中找到中间状态并标记。我们需要根据程序的运行结果判断当前提交状态是Good还是Bad,并使用以下命令标记中间状态:

git bisect good/bad

执行成功后,Git会自动切换到中间状态。

  1. 重复执行步骤3和步骤4

根据程序的运行结果,我们需要不断执行步骤3和步骤4,直到定位到错误所在的提交。

  1. 结束Bisect

一旦定位到错误所在的提交,我们需要使用以下命令结束Bisect:

git bisect reset

执行成功后,Git将返回到定位错误之前的状态。

  1. Submodules

Submodules是一种允许在一个Git仓库中嵌套其他Git仓库的方法。使用Submodules,我们可以将多个Git仓库轻松组合在一起,从而方便开发和维护。

使用Submodules需要执行以下步骤:

  1. 添加Submodule

使用以下命令将其他的Git仓库加入到当前仓库中:

git submodule add <URL> <path>

其中,258c40d94d8689854ad79c4076dd5f96是要添加的Git仓库的URL,98953a78f52873edae60a617ec082494

    Cherry-pick
Cherry-pick est une méthode permettant de sélectionner un commit et de l'appliquer à la branche actuelle. Parfois, nous devons appliquer un commit d'une autre branche à la branche actuelle. Cherry-pick peut résoudre ce problème.

Utiliser Cherry-pick est simple, il suffit d'exécuter la commande sur la branche actuelle :

git submodule update

Où, bc59094fbd619487e70ee0dbb7ee2c82 est le commit à appliquer. Après une exécution réussie, Git appliquera le commit spécifié à la branche actuelle.
    1. Bisect

    Bisect est une méthode de recherche binaire utilisée pour trouver des erreurs dans les programmes. Grâce à Bisect, nous pouvons localiser rapidement l'emplacement de l'erreur.

    L'utilisation de Bisect nécessite les étapes suivantes :

  • Marquer le statut actuel comme Bon (correct)
  • rrreee
  • Où, bc59094fbd619487e70ee0dbb7ee2c82 est la soumission correcte actuelle. Après une exécution réussie, Git marquera le statut actuel comme Bon.
  • Marquer le dernier statut comme Mauvais (erreur)
  • rrreee
  • Parmi eux, bc59094fbd619487e70ee0dbb7ee2c82 est le dernier commit. Après une exécution réussie, Git marquera l'état actuel comme Mauvais.

    Marquer les états intermédiaires

    En utilisant Bisect, Git trouvera et marquera automatiquement les états intermédiaires dans l'historique des validations. Nous devons déterminer si l'état actuel de la soumission est Bon ou Mauvais en fonction des résultats d'exécution du programme, et utiliser la commande suivante pour marquer l'état intermédiaire :

    rrreee

    Après une exécution réussie, Git passera automatiquement à l'état intermédiaire. 🎜
      🎜Répétez les étapes 3 et 4🎜🎜🎜Selon les résultats d'exécution du programme, nous devons continuer à exécuter les étapes 3 et 4 jusqu'à ce que nous localisions le commit où se trouve l'erreur. 🎜🎜🎜End Bisect🎜🎜🎜Une fois le commit où se trouve l'erreur, nous devons terminer Bisect en utilisant la commande suivante : 🎜rrreee🎜Après une exécution réussie, Git reviendra à l'état avant que l'erreur ne soit localisée. 🎜
        🎜Submodules🎜🎜🎜Les sous-modules sont une méthode qui permet d'imbriquer d'autres référentiels Git dans un seul référentiel Git. À l'aide de sous-modules, nous pouvons facilement combiner plusieurs référentiels Git pour faciliter le développement et la maintenance. 🎜🎜Pour utiliser les sous-modules, vous devez effectuer les étapes suivantes : 🎜🎜🎜Ajouter un sous-module🎜🎜🎜Utilisez la commande suivante pour ajouter d'autres référentiels Git au référentiel actuel : 🎜rrreee🎜Parmi eux, 258c40d94d8689854ad79c4076dd5f96 doit être ajouté L'URL du référentiel Git, <code>98953a78f52873edae60a617ec082494 est le chemin auquel ajouter le référentiel. 🎜🎜🎜Mettre à jour le sous-module🎜🎜🎜S'il y a des mises à jour dans d'autres référentiels Git, nous devons mettre à jour le sous-module manuellement : 🎜rrreee🎜Après une exécution réussie, Git mettra à jour tous les sous-modules vers la dernière version. 🎜🎜🎜Workflows🎜🎜🎜L'utilisation de workflows dans Git est une méthode de workflow qui aide les développeurs à organiser et à gérer les bases de code. Il existe de nombreux types de workflows, le plus courant étant Gitflow Workflow. Gitflow Workflow est largement utilisé dans Git car il peut aider les équipes à répondre à certains des besoins les plus élémentaires. 🎜🎜Gitflow Workflow comprend principalement les branches suivantes : 🎜🎜🎜master : La branche permet de stocker les versions stables dans le projet. 🎜🎜develop : La branche est utilisée pour intégrer le travail de développement de développeurs individuels et effectuer des tests de projets. 🎜🎜fonctionnalité : Branch est utilisé pour développer de nouvelles fonctionnalités. 🎜🎜release : Branch est utilisé pour publier de nouvelles versions. 🎜🎜hotfix : la branche est utilisée pour corriger des problèmes d'incompatibilité ou des bugs urgents. 🎜🎜🎜L'utilisation des Workflows doit être mise en œuvre spécifiquement en fonction des besoins de l'équipe, et doit être continuellement résumée et optimisée dans la pratique. 🎜🎜Résumé🎜🎜Cet article présente certaines utilisations avancées de Git, notamment Rebase, Cherry-pick, Bisect, Submodules, Workflows, etc. Ces méthodes peuvent aider les lecteurs à mieux comprendre Git et à améliorer l'efficacité du développement. En pratique, les développeurs peuvent utiliser ces outils de manière flexible pour mieux maintenir la base de code. 🎜

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn