Git Branch: un outil pour une collaboration efficace
Cet article est extrait du livre "Jump Start Git", qui est disponible gratuitement aux membres de SitePoint Premium. Les livres physiques sont disponibles dans les grandes librairies du monde entier, et vous pouvez également les commander ici. J'espère que vous l'aimez et en profitez!
Dans le chapitre 1, j'ai parlé de ma peur initiale d'essayer de nouvelles choses dans mon projet. Et si vous essayez des fonctionnalités ambitieuses mais brisez la pièce qui fonctionnait auparavant? La fonction de branchement de Git résout parfaitement ce problème.
Résumé des points clés
- Git Branch permet de créer une copie du projet à expérimenter sans affecter le projet d'origine. Si l'expérience réussit, il est facile de fusionner des éléments expérimentaux dans la branche principale. Les branches
- permettent de traiter plusieurs tâches simultanément sans interférer les uns avec les autres. Ceci est très utile en attendant l'approbation d'une fonctionnalité tout en nécessitant un traitement d'une autre fonctionnalité. La branche peut également rendre le code plus facile à comprendre en séparant différentes idées.
- Créez une branche dans git en utilisant la commande
git branch [分支名称]
. Passez à cette branche pour utilisergit checkout [分支名称]
. La suppression des branches utilisegit branch -D [分支名称]
, mais il est recommandé de ne pas supprimer les branches sauf si nécessaire. - La fusion des branches dans GIT est un processus simple. Après s'assurer que la branche requise est active, utilisez la commande
git merge [分支名称]
. Cependant, cela peut créer des boucles dans l'histoire du projet, qui peuvent être difficiles à naviguer dans les grandes équipes. Le chapitre suivant explorera une méthode de fusion qui ne crée pas de boucles.
Qu'est-ce qu'une branche?
Créer une nouvelle branche dans le projet signifie essentiellement créer une copie du projet. Vous pouvez utiliser cette copie pour expérimenter sans affecter le projet d'origine. Donc, si l'expérience échoue, vous pouvez l'abandonner et revenir au projet d'origine - la branche principale.
Mais si l'expérience réussit, Git peut facilement fusionner les éléments expérimentaux dans la branche principale. Et, plus tard, si vous changez d'avis, vous pouvez facilement restaurer à l'état du projet avant la fusion.
Par conséquent, les branches en GIT sont des chemins de développement indépendants. Vous pouvez créer de nouveaux engins dans une branche sans affecter d'autres branches. La facilité d'utilisation des branches est l'une des meilleures fonctionnalités de Git. (Bien que d'autres options de contrôle de version (telles que CVS) aient également des options de branche, l'expérience de la fusion des branches sur CVS est très fastidieuse. Si vous avez de l'expérience en utilisant des branches dans d'autres systèmes de contrôle de version, soyez assuré que l'utilisation de branches dans GIT est complètement différente. )
Dans GIT, vous êtes dans la branche principale par défaut. Le nom "Master" ne signifie pas qu'il est supérieur de quelque manière que ce soit. Ce n'est qu'un dicton conventionnel.
REMARQUE: Accord de branche
Bien que vous soyez libre d'utiliser différentes branches comme branches de base de Git, les gens s'attendent généralement à trouver le dernier code pour un projet spécifique dans la branche principale.
Vous pourriez affirmer qu'aucune branche n'est nécessaire en raison de la capacité de retourner à un commit. Mais imaginez que vous devez montrer votre travail à votre superviseur tout en développant une nouvelle fonctionnalité qui ne fait pas partie du travail que vous avez fait. Étant donné que la branche est utilisée pour séparer différentes idées, elle rend le code du référentiel facile à comprendre. De plus, les branches vous permettent de conserver des commits importants uniquement dans la branche maître ou maître.
Une autre utilisation des branchesest qu'elles vous permettent de gérer plusieurs choses en même temps sans interférer les uns avec les autres. Supposons que vous ayez soumis la fonctionnalité 1 pour examen, mais il faudra du temps à votre superviseur pour l'examiner. En même temps, vous devez gérer la fonction 2. Dans ce cas, la branche est utile. Si vous travaillez sur votre nouvelle idée sur une nouvelle branche, vous pouvez revenir à votre branche précédente à tout moment pour restaurer le référentiel à son état précédent, qui ne contient aucun code lié à votre idée.
Commençons maintenant à utiliser des branches en git. Pour afficher la liste des branches et la branche actuelle que vous utilisez, exécutez la commande suivante:
<code>git branch</code>
Si vous avez cloné votre référentiel ou configurez un référentiel distant, vous pouvez également voir la branche distante. Il suffit d'ajouter -a:
après la commande ci-dessus<code>git branch -a</code>
Comme indiqué ci-dessus, les branches rouges indiquent qu'elles sont situées dans le référentiel distant. Dans notre exemple, nous pouvons voir les différentes branches qui existent dans le référentiel distant d'origine.
Créer une branche
Il existe plusieurs façons de créer des branches dans GIT. Pour créer une nouvelle branche et le garder dans la branche actuelle, exécutez la commande suivante:
<code>git branch test_branch</code>
Ici, test_branch
est le nom de la branche qui a été créé. Cependant, après avoir exécuté <code>git branch</code>, il semble que la branche active soit toujours la branche principale. Pour modifier la branche active, nous pouvons exécuter la commande de caisse (comme indiqué ci-dessous):
<code>git checkout test_branch</code>
Vous pouvez également combiner les deux commandes ci-dessus pour créer et consulter une nouvelle branche dans une commande en ajoutant -B après la commande de paiement:
<code>git checkout -b new_test_branch</code>
La succursale que nous venons de créer est basée sur le dernier engagement de la branche actuellement active (dans ce cas la branche principale). Si vous souhaitez créer une branche (par exemple cafb55d
) sur la base d'un engagement (par exemple old_commit_branch
), vous pouvez exécuter la commande suivante:
<code>git checkout -b old_commit_branch cafb55d</code>
pour renommer la branche actuelle à renamed_branch
, exécutez la commande suivante:
<code>git branch -m renamed_branch</code>
Supprimer la branche
Pour supprimer une branche, exécutez la commande suivante:
<code>git branch</code>
Remarque: ne supprimez pas les branches sauf si nécessaire
Puisqu'il n'y a en fait aucun inconvénient à garder les branches, je recommande de ne pas les supprimer à moins que le nombre de branches du référentiel ne devienne trop grand pour gérer.
L'option -D
utilisée ci-dessus supprimera la branche même si la branche n'est pas synchronisée avec la branche distante. Cela signifie que si vous avez un engagement qui n'a pas été poussé dans votre branche actuelle, -D
supprimera toujours votre branche sans aucun avertissement. Pour vous assurer de ne pas perdre de données, vous pouvez utiliser -d
comme alternative à -D
. -d
Supprimer les branches uniquement si elles ont été synchronisées avec les branches distantes. Étant donné que nos branches ne sont pas encore synchronisées, voyons ce qui se passe si nous utilisons -d
, comme indiqué ci-dessous:
Comme vous pouvez le voir, Git vous avertira et interdit l'opération car les données n'ont pas été fusionnées avec la branche.
Branches et tête
Maintenant que nous avons l'occasion d'essayer les bases de la ramification, prenons un moment pour discuter du fonctionnement des branches dans Git et introduire un concept important: la tête.
Comme mentionné ci-dessus, les succursales ne sont que des liens entre différents engins, ou par la voie de la validation. Il convient de noter que lors de l'utilisation d'une succursale, la tête de la branche pointe vers le dernier engagement de la branche. Je mentionnerai la tête plusieurs fois dans les chapitres suivants. Dans Git, le chef indique le dernier engagement de la succursale. En d'autres termes, il fait référence au sommet de la branche.
La succursale est essentiellement un pointeur vers un engagement qui a un engagement parent, un commit grand-parent, etc. Cette chaîne de validation forme le chemin que j'ai mentionné ci-dessus. Alors, comment relier les branches et la tête? Eh bien, le haut de la tête et la branche actuelle pointent vers le même engagement. Regardons un graphique pour illustrer cette idée:
Comme indiqué ci-dessus, branch_A
est initialement une branche active, et les points de tête pour commettre C. La validation a est la validation de base, sans aucun engagement parent, de sorte que les engagements dans branch_A
sont organisés dans l'ordre inverse dans le temps (qui constitue également le chemin que j'ai mentionné ci-dessus) sont C → B → A. Le commit dans branch_B
est E → D → B → A. Head indique le dernier engagement de la branche active branch_A
, c'est-à-dire commettre C. Lorsque nous ajouterons un engagement, il sera ajouté à la branche active. Après avoir engagé, branch_A
pointe vers F, et la branche suit F → C → B → A, tandis que branch_B
reste le même. Head pointe maintenant pour commettre F. Encore une fois, lorsque nous ajoutons un autre engagement, les modifications sont démontrées sur la figure.
Branche avancée: fusion de la branche
Comme mentionné précédemment, l'un des plus grands avantages de Git est qu'il est particulièrement facile de fusionner les succursales. Voyons maintenant comment cela se fait.
Nous créerons deux nouvelles branches - new_feature
et another_feature
- et ajouterons des validations virtuelles. La vérification de l'historique de chaque branche nous montre que la branche another_feature
mène un seul engagement comme suit:
Cette situation peut être représentée dans la figure ci-dessous. Chaque cercle représente un engagement, et le nom de la branche pointe vers sa tête (haut de la branche).
pour fusionner new_feature
avec la branche principale, exécutez la commande suivante (assurez-vous d'abord que la branche principale est active):
<code>git branch</code>
Les résultats peuvent être présentés dans la figure ci-dessous:
pour fusionner another_feature
avec new_feature
, il suffit d'exécuter la commande suivante (assurez-vous que la branche new_feature
est active):
<code>git branch -a</code>
Les résultats peuvent être présentés dans la figure ci-dessous:
Astuce importante: faites attention au cycle
L'image ci-dessus montre que cette fusion crée une boucle à travers deux engagements dans l'historique de votre projet où le flux de travail diverge et converge respectivement. Ces boucles peuvent ne pas être un problème lorsque vous travaillez seul ou en petites équipes. Cependant, dans une équipe plus grande - il peut y avoir beaucoup de validations puisque vous avez dévié de la branche principale - cette grande boucle rend difficile la navigation sur l'histoire et la compréhension des changements. Nous explorerons les moyens de fusionner les branches à l'aide de la commande Rebase sans créer de boucles dans le chapitre 6.
Il n'y a pas de "conflit" dans cette fusion. La raison est simple, aucun nouveau engagement n'est ajouté à la branche another_feature
par rapport à la branche new_feature
. Les conflits en GIT se produisent lorsque la même partie du même fichier est modifiée dans les engagements non publics dans les deux succursales. Git lance des conflits pour vous assurer de ne perdre aucune donnée.
Nous discuterons en détail des conflits dans le chapitre suivant. Comme je l'ai mentionné plus tôt, les branches peuvent être visualisées avec des chemins de validation simples. Lorsque nous fusions les succursales et qu'il n'y a pas de conflits, comme ci-dessus, seul le chemin de la branche change et la tête de la branche est mise à jour. C'est ce qu'on appelle une fusion rapide de type avant.
Une autre façon de fusionner les branches est la fusion non rapide, en ajoutant --no-ff
après la commande de fusion. De cette façon, un nouvel commit est créé sur la branche sous-jacente avec des changements d'une autre branche. Vous devez également spécifier le message de soumission:
<code>git branch</code>
Dans l'exemple ci-dessus, le premier (fusion new_feature
avec la branche principale) est une fusion rapide, tandis que la seconde est une fusion non rapide avec un engagement de fusion.
Bien que les fusions de style à avant rapide soient par défaut, il est généralement préférable d'utiliser une méthode avant-gardiste pour les fusions fusionnées vers la branche principale. À long terme, l'identification de nouveaux engins qui fusionnent de nouvelles fonctionnalités peuvent être bénéfiques car il sépare logiquement la partie de code responsable des nouvelles fonctionnalités en un seul engagement.
Conclusion
Qu'avez-vous appris?
Dans ce chapitre, nous discutons de ce que sont les branches et comment les gérer en Git. Nous avons examiné la création, la modification, la suppression et la fusion des branches.
Quelle est la prochaine étape?
J'ai déjà parlé de la façon dont Git est bon pour les développeurs qui travaillent avec des équipes. Ceci est exploré plus en détail dans le chapitre suivant, ainsi que les opérations et commandes GIT spécifiques qui sont souvent utilisées dans des équipes distribuées.
FAQ sur la branche git
- Quel est le but principal de la branche Git?
Git Branch est une fonctionnalité puissante qui permet aux développeurs de créer des lignes de développement distinctes. Ceci est particulièrement utile lorsque vous traitez de nouvelles fonctionnalités ou correctifs, car il vous permet d'isoler votre travail à partir du projet principal. Une fois la fonction ou le correctif terminé et testé, il peut être fusionné au projet principal. Cela garantit que le projet principal reste stable et permet à plusieurs développeurs de gérer les différentes fonctions simultanément sans interférer les uns avec les autres.
- Comment créer une nouvelle branche dans GIT?
Créer une nouvelle branche dans GIT est simple. Vous pouvez utiliser la commande <code>git branch</code> suivie du nom de la nouvelle branche. Par exemple, git branch new_feature
créera une nouvelle branche appelée "new_feature". Pour passer à cette branche, vous pouvez utiliser la commande git checkout
comme suit: git checkout new_feature
.
- Comment fusionner les branches dans GIT?
Merger les branches en git en utilisant la commande git merge
. Avant de fusionner, vous devez être sur la branche sur laquelle vous souhaitez fusionner. Par exemple, si vous souhaitez fusionner une branche nommée "new_feature" dans une branche "maître", vous devez d'abord passer à la branche principale à l'aide de git checkout master
, puis utiliser la commande git merge new_feature
.
- Qu'est-ce qu'un pointeur de branche git et comment ça marche?
Git Branch Pointer est un fichier contenant le hachage SHA1 Commit. Lorsque vous créez une nouvelle branche, Git crée un nouveau pointeur et le déplace avec chaque nouvel engagement que vous faites. Cela permet à Git de suivre l'histoire du projet.
- Comment supprimer une branche dans GIT?
Supprimer une branche en git en utilisant la commande git branch -d
suivie du nom de la branche. Par exemple, git branch -d old_feature
supprimera une branche nommée "Old_Feature". Cependant, si une branche a un engagement qui n'a pas été fusionné dans une autre branche, Git vous empêchera de supprimer la branche. Pour forcer la suppression, vous pouvez utiliser l'option -D
.
- Quelle est la différence entre une fusion rapide et une fusion tripartite en Git?
La fusion rapide en avant dans GIT est possible lorsqu'il y a un chemin linéaire de la pointe de la branche actuelle à la branche cible. Au lieu de créer un nouvel engagement, Git déplace le pointeur de branche actuel vers la branche cible. D'un autre côté, lorsqu'il n'y a pas de chemin linéaire, une fusion tripartite est utilisée. Git créera un nouvel engagement avec deux parents, reliant efficacement les deux branches.
- Comment afficher toutes les branches dans un référentiel GIT?
Vous pouvez afficher toutes les branches du référentiel GIT à l'aide de la commande <code>git branch</code> sans paramètres. Cela énumèrera toutes les succursales locales. Si vous souhaitez également afficher les branches distantes, vous pouvez utiliser l'option -a
comme suit: <code>git branch -a</code>.
- Comment renommer une branche en git?
Renommez une branche dans Git en utilisant la commande git branch -m
suivie des anciens et nouveaux noms. Par exemple, git branch -m old_name new_name
renommera la branche "old_name" à "new_name".
- Qu'est-ce que la tête de séparation en git et comment l'éviter?
La tête désastreuse dans GIT se produit lorsque vous vérifiez un engagement au lieu d'une branche. Cela peut être dangereux car lorsque vous consultez une autre branche, toutes les modifications que vous apportez seront perdues. Pour éviter cela, assurez-vous de toujours consulter la branche au lieu de vous engager.
- Comment résoudre les conflits lors de la fusion des branches dans GIT?
Lors de la fusion de branches dans GIT, des conflits peuvent se produire si la même partie du même fichier est modifiée dans les deux branches. Git marquera le fichier comme "non fusionné", vous devez résoudre le conflit manuellement. Vous pouvez le faire en ouvrant le fichier dans un éditeur de texte, en trouvant la marque de conflit () et en décidant des changements à conserver. Une fois que tous les conflits sont résolus, vous pouvez ajouter le fichier à l'aide de <code>git add
et le soumettre en utilisant git commit
.
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!

La montée en puissance du pouvoir technologique des femmes chinoises dans le domaine de l'IA: l'histoire de la collaboration d'honneur avec la contribution des femmes en profondeur au domaine de la technologie devient de plus en plus significative. Les données du ministère des Sciences et de la Technologie de la Chine montrent que le nombre de travailleuses scientifiques et technologiques est énorme et montre une sensibilité à la valeur sociale unique dans le développement des algorithmes d'IA. Cet article se concentrera sur l'honneur des téléphones mobiles et explorera la force de l'équipe féminine derrière qu'elle soit la première à se connecter au grand modèle Deepseek, montrant comment ils peuvent promouvoir le progrès technologique et remodeler le système de coordonnées de valeur de développement technologique. Le 8 février 2024, Honor a officiellement lancé le Big Model de Deepseek-R1, devenant le premier fabricant du camp Android à se connecter à Deepseek, excitant la réponse enthousiaste des utilisateurs. Dant ce succès, les membres de l'équipe féminine prennent des décisions de produits, des percées techniques et des utilisateurs

Deepseek a publié un article technique sur Zhihu, présentant en détail son système d'inférence Deepseek-V3 / R1, et a révélé pour la première fois des données financières clés, ce qui a attiré l'attention de l'industrie. L'article montre que la marge de bénéfice des coûts quotidiens du système atteint 545%, ce qui établit un nouveau profit mondial dans le modèle mondial de l'IA. La stratégie à faible coût de Deepseek lui donne un avantage dans la concurrence du marché. Le coût de sa formation sur modèle n'est que de 1% à 5% des produits similaires, et le coût de la formation du modèle V3 n'est que de 5,576 millions de dollars, bien inférieur à celui de ses concurrents. Pendant ce temps, la tarification de l'API de R1 n'est que de 1/7 à 1/2 d'Openaio3-MinI. Ces données prouvent la faisabilité commerciale de la voie technologique profonde et établissent également la rentabilité efficace des modèles d'IA.

La construction du site Web n'est que la première étape: l'importance du référencement et des backlinks La construction d'un site Web n'est que la première étape pour la convertir en un actif marketing précieux. Vous devez faire l'optimisation du référencement pour améliorer la visibilité de votre site Web dans les moteurs de recherche et attirer des clients potentiels. Les backlinks sont la clé pour améliorer le classement de votre site Web, et il montre à Google et à d'autres moteurs de recherche l'autorité et la crédibilité de votre site Web. Tous les backlinks ne sont pas bénéfiques: identifier et éviter les liens nocifs Tous les backlinks ne sont pas bénéfiques. Les liens nocifs peuvent nuire à votre classement. Excellent outil de vérification de la liaison backlink gratuite surveille la source des liens vers votre site Web et vous rappelle les liens nuisibles. De plus, vous pouvez également analyser les stratégies de liaison de vos concurrents et en apprendre. Outil de vérification gratuite de backlink: votre agent de renseignement SEO

MIDEA publiera bientôt son premier climatiseur équipé d'un grand modèle Deepseek - MIDEA Fresh and Clean Air Machine T6. Ce climatiseur est équipé d'un système de conduite intelligent avancé, qui peut ajuster intelligemment les paramètres tels que la température, l'humidité et la vitesse du vent en fonction de l'environnement. Plus important encore, il intègre le grand modèle Deepseek et prend en charge plus de 400 000 commandes vocales AI. La décision de Midea a provoqué des discussions animées dans l'industrie et est particulièrement préoccupé par l'importance de la combinaison de produits blancs et de grands modèles. Contrairement aux paramètres de température simples des climatiseurs traditionnels, MIDEA Fresh Air Machine T6 peut comprendre des instructions plus complexes et vagues et ajuster intelligemment l'humidité en fonction de l'environnement familial, améliorant considérablement l'expérience utilisateur.

Deepseek-R1 autorise la bibliothèque Baidu et NetDisk: L'intégration parfaite de la pensée et de l'action profondes s'est rapidement intégrée à de nombreuses plateformes en seulement un mois. Avec sa disposition stratégique audacieuse, Baidu intègre Deepseek en tant que partenaire modèle tiers et l'intégre dans son écosystème, qui marque un progrès majeur dans sa stratégie écologique de "Big Model Search". Baidu Search et Wenxin Intelligent Intelligent Platform sont les premiers à se connecter aux fonctions de recherche profonde des grands modèles Deepseek et Wenxin, offrant aux utilisateurs une expérience de recherche IA gratuite. Dans le même temps, le slogan classique de "Vous saurez quand vous allez à Baidu", et la nouvelle version de l'application Baidu intègre également les capacités du Big Model et Deepseek de Wenxin, lançant "AI Search" et "Wide Network Information Raffinement"

Ingénierie rapide de l'IA pour la génération de code: guide d'un développeur Le paysage du développement du code est prêt pour un changement significatif. La maîtrise des modèles de grande langue (LLMS) et de l'ingénierie rapide sera crucial pour les développeurs dans les années à venir. Ème

Ce scanner de vulnérabilité de réseau basé sur GO identifie efficacement les faiblesses de sécurité potentielles. Il exploite les fonctionnalités de concurrence de GO pour la vitesse et comprend la détection de services et la correspondance de vulnérabilité. Explorons ses capacités et ses éthiques


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Dreamweaver Mac
Outils de développement Web visuel

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel
