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é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
.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.
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 :
À 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.