Comment git gère-t-il les conflits ?
淡淡烟草味
淡淡烟草味 2017-05-02 09:33:30
0
10
804

Je viens de commencer à apprendre git et j'ai une question.
Little A et Little B ont cloné la dernière version à partir du git distant.
Les deux personnes ont modifié le code localement.
Petit A a soumis le code en premier.
Que se passera-t-il si Little B soumet à nouveau le code ?
Le code soumis par Little A sera-t-il écrasé ou ne pourra-t-il pas être soumis ?

淡淡烟草味
淡淡烟草味

répondre à tous(10)
伊谢尔伦

Répondez d'abord à la question :

Petit A a soumis le code en premier, et la bibliothèque distante et la bibliothèque locale de Petit A sont synchronisées, en supposant qu'elle est 0 -> a
À ce moment, la bibliothèque locale de Petit B est 0 -> de la bibliothèque distante est supérieure à celle locale. Si la bibliothèque est plus récente, git refusera de pousser et signalera une erreur.

Git demandera à git pull de mettre à jour la bibliothèque locale, et l'opération d'extraction est équivalente aux opérations de récupération et de fusion automatiques. Il essaiera de fusionner automatiquement la bibliothèque distante dans la bibliothèque locale, puis exigera une fusion manuelle en cas de besoin. un conflit.

漂亮男人

Little B sera invité à extraire le code en premier. Si la ligne du code modifiée par Little B est la même que celle de Little A, un conflit sera généré sur cette ligne du fichier. Elle doit être fusionnée. manuellement. Si les modifications sont différentes, Git fusionnera automatiquement les codes associés

.
PHPzhong

Si vous avez changé d'endroits différents, vous pouvez fusionner directement. Si vous avez changé le même endroit, git mettra automatiquement les deux versions du code dans le fichier et attendra que vous choisissiez

迷茫

Little B récupère d'abord le code de Little A, puis le fusionne, puis le soumet à nouveau.

phpcn_u1582

Une fois chaque développement terminé, ajoutez d'abord un commit, puis extrayez le code distant. S'il y a des conflits, résolvez-les dès que possible, puis poussez. Bien sûr, je parle de ne pas considérer les branches.

淡淡烟草味

Il y a une habitude, qui, je pense, semble bonne, c'est-à-dire que chaque fois que vous soumettez du code, vous devez d'abord tirer puis pousser. Cela évitera dans une large mesure les erreurs. Quant à la résolution des conflits, c'est un problème avec. le code. Après qu'une erreur soit signalée, le fichier s'affichera en rouge, il y a une ligne de séparation celle du haut est le code d'autres personnes et celle du bas est votre propre code. Choisissez celui dont vous avez besoin.

小葫芦

Je me suis saoulé en voyant le titre. Puisqu'il s'agit d'un conflit, il doit être résolu manuellement.

L'outil ne peut pas déterminer comment fusionner les codes, il y aura donc des conflits. Si Git pouvait résoudre les conflits par lui-même, les gens n’auraient pas besoin d’écrire du code.

習慣沉默

Lors de la soumission du code, Xiao B doit d'abord git pull pour mettre à jour le code. S'il y a un conflit dans le code, une erreur similaire à celle-ci apparaîtra :

error: Your local changes to the following files would be overwritten by merge:
****/****/**.php
Please, commit your changes or stash them before you can merge.

À ce stade, git vous demande d'abord de modifier manuellement le conflit, de rechercher le fichier demandé, et """" apparaîtra dans la partie en conflit pour séparer les parties du code qui doivent être modifiées. Cela dépend de la manière dont. vous choisissez.

大家讲道理

Git ne résoudra pas les conflits par lui-même, mais essaiera uniquement de fusionner les correctifs. Si git constate que deux correctifs ont modifié le même contenu, il utilisera activement <<<<<< ;> >>>>> pour afficher les conflits et les résoudre ultérieurement.

我想大声告诉你

Si les modifications de votre code sont minimes, vous pouvez en copier une copie et la coller.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal